为什么mongoose ObjectId.valueOf()返回一个对象?

UpT*_*eek 2 mongoose mongodb

根据mongodb文档, ObjectId.valueOf()现在应该返回id的字符串版本.

但是,我正在使用mongoose(v3.8.12)并且valueOf()函数正在返回一个对象.

我知道这在mongodb的v2.2中有所改变,但从那时起已经有一段时间了.

任何人都可以解释为什么会这样吗?或者指出一些关于猫鼬行为的权威文件?

谢谢

Leo*_*tny 5

您提供了mongodb shell文档的链接.

但是,你实际使用的是一个Node.js的实施,特别是猫鼬 ORM建立在顶部MongoDB的本地驱动程序.而且mongodb-native,就其本身而言,正在使用bson模块.

因此,您应该查看mongoosemongodb-native文档,而不是mongodb shell 文档:

这是一个文档ObjectId mongoose,mongodb-native正在使用.

至于.valuOf()方法,它是JavaScript Object原型的一部分,与之mongoose或无关mongodb-native.