According to the mongodb docs ObjectId.valueOf()现在应该返回id的字符串版本。
但是,我正在使用mongoose(v3.8.12)并且valueOf()函数正在返回一个对象。
我知道这在mongodb的v2.2中有所改变,但从那时起已经有一段时间了。
任何人都可以解释为什么会这样吗?或者指出一些关于猫鼬行为的权威文件?
谢谢
答案 0 :(得分:5)
您提供了mongodb shell文档的链接。
但是,您实际使用的是node.js实现,特别是mongoose ORM构建在mongodb native driver之上。而mongodb-native
则使用bson模块。
因此,您应该查看mongoose
和mongodb-native
文档,而不是mongodb shell文档:
以下是documentation for ObjectId
class mongoose
和mongodb-native
正在使用的内容。
至于.valuOf()
方法,它是JavaScript Object prototype的一部分,与mongoose
或mongodb-native
无关。