mongodb - 为什么 Mongoose ObjectId.valueOf() 返回一个对象?

标签 mongodb mongoose

According to the mongodb docs ObjectId.valueOf() 现在应该返回 id 的字符串版本。

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

我知道这在 mongodb v2.2 中发生了变化,但从那时起已经有一段时间了。

谁能解释为什么会这样?或者给我一些关于 Mongoose 行为的权威文档?

谢谢

最佳答案

您提供了指向 mongodb shell 文档的链接。

但是,您实际使用的是 node.js 实现,特别是 mongoose ORM 建立在 mongodb native driver 之上.而 mongodb-native 就其本身而言,正在使用 bson模块。

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

这是一个documentation for ObjectId class mongoosemongodb-native 正在使用。

至于.valuOf() 方法,它是JavaScript Object prototype 的一部分并且与 mongoosemongodb-native 无关。

关于mongodb - 为什么 Mongoose ObjectId.valueOf() 返回一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208593/

相关文章:

python - 如何将 mongodb 的 Gridfs 与 PIL(Python 图像库)一起使用

node.js - 在 Mongoose 中如何声明动态 Schema

javascript - Express POST 后重定向到新的 Mongo 保存的 ID?

javascript - 仅阻止未定义的值

node.js - 如何使用 Node.js 和 Mongoose 为我的 REST api 提供详细信息和摘要对象?

javascript - MongoDB - 如果对象包含小于 x 的值,如何删除数组中的对象?

对象数组的 MongoDB 更新

C# mongodb 驱动程序 2.0,如何使 ToListAsync() 返回 List<Entity>?

javascript - mongodb 中的 json 对象

node.js - 一个 JavaScript 框架,包括服务器端和客户端,用于描述表单并验证它们?