如何在MongoDb中存储对其他集合的引用

时间:2015-01-18 20:35:25

标签: 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

的一个例子

1 个答案:

答案 0 :(得分:3)

主要区别在于ObjectId占用12个字节的空间(http://docs.mongodb.org/manual/reference/object-id/),而字符串表示占用24个字节。因此,使用ObjectId将节省一半的空间。