如何在 MongoDb 中存储对其他集合的引用
How to store reference to other collection in MongoDb
我需要存储对其他集合的引用,但我无法决定是将其存储为字符串还是 ObjectId()
。我看到可以通过两种方式进行(在 mongo shell 中):
作为 ObjectId
db.books.findOne({_id:ObjectId("54bc1287c582714e9f062591")});
{
"_id" : ObjectId("54bc1287c582714e9f062591"),
"title" : "Book title",
"author_id" : ObjectId("54bc12da5f5e8854718b4568")
}
作为字符串
db.books.findOne({_id:ObjectId("54bc1287c582714e9f062591")});
{
"_id" : ObjectId("54bc1287c582714e9f062591"),
"title" : "Book title",
"author_id" : "54bc12da5f5e8854718b4568"
}
我不会通过 author_id
进行搜索,因此我不需要任何索引。我会拿一本书,然后 author_id
拿一个作者。顺便说一下,这只是 books
的一个例子
主要区别在于 ObjectId 将占用 12 个字节 space (http://docs.mongodb.org/manual/reference/object-id/),而字符串表示形式占用 24 个字节。因此,使用 ObjectId 将为您节省一半 space.
我需要存储对其他集合的引用,但我无法决定是将其存储为字符串还是 ObjectId()
。我看到可以通过两种方式进行(在 mongo shell 中):
作为 ObjectId
db.books.findOne({_id:ObjectId("54bc1287c582714e9f062591")});
{
"_id" : ObjectId("54bc1287c582714e9f062591"),
"title" : "Book title",
"author_id" : ObjectId("54bc12da5f5e8854718b4568")
}
作为字符串
db.books.findOne({_id:ObjectId("54bc1287c582714e9f062591")});
{
"_id" : ObjectId("54bc1287c582714e9f062591"),
"title" : "Book title",
"author_id" : "54bc12da5f5e8854718b4568"
}
我不会通过 author_id
进行搜索,因此我不需要任何索引。我会拿一本书,然后 author_id
拿一个作者。顺便说一下,这只是 books
主要区别在于 ObjectId 将占用 12 个字节 space (http://docs.mongodb.org/manual/reference/object-id/),而字符串表示形式占用 24 个字节。因此,使用 ObjectId 将为您节省一半 space.