无法访问从猫鼬fineOne()返回的json中的键[重复]
Posted
技术标签:
【中文标题】无法访问从猫鼬fineOne()返回的json中的键[重复]【英文标题】:Can't access keys in a json that is returned from mongoose fineOne() [duplicate] 【发布时间】:2019-04-23 06:33:05 【问题描述】:我遇到了一个奇怪的问题。 我已经使用 mongoose 在我的 mongoDB 中搜索并找到了一个文档,方法是使用 model.findOne(),如下所示:
Model.findOne(
ID: ID
).then(existingDoc =>
console.log(existingDoc );
res.send(existingDoc );
);
现在,到目前为止一切正常,它发送了我期望得到的 json。看起来像这样:
"_id": "5bf388cf170a974770c5c942",
"ID": "11/2018",
"date": "2018-11-20T04:08:47.997Z",
"total":
"total_market_cap": [
64301.06256298704
]
问题是当我尝试访问这些值时:
console.log(existingDoc.total);
我不确定。也尝试使用:
console.log(existingDoc['total']);
我仍然不确定。
它为除 _id 和 __v 之外的所有内容返回未定义。就像它是一个空对象,尽管它不是。
【问题讨论】:
【参考方案1】:你能不能试着把它转换成Object
Model.findOne(
ID: ID
).then(existingDoc =>
console.log(existingDoc );
let newdoc = existingDoc.toObject();
console.log(newdoc.myProperty)
res.send(existingDoc );
);
【讨论】:
成功了!虽然我不知道为什么。当我在现有文档上使用 typeof 时,它已经是一个对象。谢谢! 你能添加更多关于这种行为的解释吗?看起来很有趣。 Mongoose 文档说此方法将文档转换为纯 js 对象。有了plan js对象后,我们就可以迭代属性了。 mongoosejs.com/docs/api.html#document_Document-toObject以上是关于无法访问从猫鼬fineOne()返回的json中的键[重复]的主要内容,如果未能解决你的问题,请参考以下文章