两者有什么区别:
{
_id: ObjectId("507f191e810c19729de860ea")
}
和
{
_id: "507f191e810c19729de860ea"
}
我似乎找不到任何关于此事的信息。
这让我很困惑,因为当您使用 JavaScript 插入时,它会使用 ObjectId("507f191e810c19729de860ea")
格式。
但如果您使用 C# 驱动程序,它将使用 "507f191e810c19729de860ea"
格式。
字符串格式似乎是更好的选择,因为它使用的空间更少。
最佳答案
ObjectIDs 是一个 12 字节的 BSON 对象 ID(它需要 24 才能显示为十六进制,因为您需要两个十六进制字符来编码一个字节值)。该字符串是一个完整的 24 个字节。见 ObjectID specification具体情况。
也就是说,您可以为 _id
字段使用任何您想要的内容,但建议您坚持一致的方案 - 要么使用所有字符串(以及在您引用其他字符串的情况下使用字符串)来自外键的文档)或使用所有 ObjectID。使用 ObjectID 是常规做法,但只要您有一个完全一致的方案,您应该不会有什么大问题。
关于mongodb - _id : ObjectID and String? 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15980136/