📜  mongodb hasOwnProperty 返回 false - Javascript (1)

📅  最后修改于: 2023-12-03 15:03:01.220000             🧑  作者: Mango

MongoDB hasOwnProperty 返回 false - Javascript

如果您使用 MongoDB,并使用 hasOwnProperty 检查对象属性,则可能会发现 MongoDB 没有实现这个方法。当您尝试使用 hasOwnProperty 检查 MongoDB 对象属性时,它将返回 false,即使该属性存在。

什么是 hasOwnProperty?

hasOwnProperty 是 Javascript 中的一个对象方法,用于检查给定对象是否具有特定名称的属性。它返回一个布尔值,true 表示该对象具有该属性,false 表示该对象不具有该属性。

MongoDB 中的 hasOwnProperty

在 MongoDB 中,对象的键和值存储在 BSON (Binary JSON) 格式中。当您使用 hasOwnProperty 检查 MongoDB 对象属性时,它将返回 false,即使该属性存在。由于 BSON 不是 Javascript,没有实现 hasOwnProperty 方法,因此这种情况是可以预期的。

为了检查 MongoDB 对象是否具有某个属性,您可以使用这样的代码:

if (myMongoObject.hasOwnProperty('myProperty') || 'myProperty' in myMongoObject) {
   // do something
}

在这个例子中,我们使用 || 运算符,将 hasOwnProperty 和 'in' 运算符组合起来使用,以确保我们能够检测到对象属性的存在。

总结

在 MongoDB 中,由于键和值存储在 BSON 格式中,并不是 Javascript 对象,因此不存在 hasOwnProperty 方法。如果您需要检查 MongoDB 对象属性是否存在,可以使用 'in' 运算符,或者使用组合的方式,包括 hasOwnProperty 和 'in' 运算符。