这是来自mongodb的文档:
{
"_id" : ObjectId("5c11827eec69860e24519415"),
"cardNumber" : "4519021475877785",
"accounts" : [
{
"_id" : ObjectId("5c10975d58fdf013e803e5da"),
"currency" : "CAD"
}
]
}
我从中获得了帐户:account = data.accounts[0]
。
我可以获得此帐户的currency
的值:currency = account.currency
我认为JavaScript中的帐户是一个对象。
因此,account.hasOwnProperty('currency')
应该是true
。
但是我运行代码时是false
。
有人知道吗?
答案 0 :(得分:2)
Mongoose对象提供给您,因为查询结果不是普通的JS对象。这是一个Document对象(该类在Mongoose中定义),将数据保存在其他地方(可能在其原型链中),这就是hasOwnProperty返回false的原因。
如果您想使用一个确实包含数据字段作为其自身属性的对象,则可以调用Document对象的toObject()方法。文件here