mongo ObjectID, ObjectId & Mongoose ObjectId 有什么区别

Qiu*_*ang 9 mongoose mongodb node.js

我无法弄清楚 mongo ObjectID 和 ObjectId 之间的区别。文档说ObjectId,但是当我阅读代码时,我看到

import { ObjectID } from 'bson';
Run Code Online (Sandbox Code Playgroud)

让事情更加混乱的是猫鼬文档和代码。猫鼬还说 ObjectId http://mongoosejs.com/docs/api.html#types-objectid-js。但是当我阅读代码时,我看到了

// mongodb.ObjectID does not allow mongoose.Types.ObjectId(id). This is
//   commonly used in mongoose and is found in an example in the docs:
//   http://mongoosejs.com/docs/api.html#aggregate_Aggregate
// constructor exposes static methods of mongodb.ObjectID and ObjectId(id)
type ObjectIdConstructor = typeof mongodb.ObjectID & {
  (s?: string | number): mongodb.ObjectID;
}
Run Code Online (Sandbox Code Playgroud)

那么ObjectID、ObjectId和mongoose ObjectId到底有什么区别呢?

我发现还有另一个 SO 在谈论这个 BSON::ObjectId vs Mongo::ObjectID

那里的链接虽然已经死了,但并没有涉及猫鼬。所以我希望我的问题不会被标记为重复。

小智 0

Mongo ObjectID 是一个唯一的 12 字节标识符,可以由 MongoDB 生成作为主键。

ObjectID 是一个唯一的非空整数字段,用于唯一标识表中的行

在 Mongoose 中,ObjectID 与 Mongo ObjectID 相同,并引用另一个集合中的对象