JavaScript Object.hasOwnProperty()问题

时间:2018-12-13 03:22:44

标签: javascript mongodb

这是来自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

有人知道吗?

1 个答案:

答案 0 :(得分:2)

Mongoose对象提供给您,因为查询结果不是普通的JS对象。这是一个Document对象(该类在Mongoose中定义),将数据保存在其他地方(可能在其原型链中),这就是hasOwnProperty返回false的原因。

如果您想使用一个确实包含数据字段作为其自身属性的对象,则可以调用Document对象的toObject()方法。文件here