如何使用mongodb中的_id建立跨集合的一对多关系?

时间:2013-07-14 19:41:27

标签: mongodb

mongo db docs回答了这个问题,但答案对我来说似乎不对。从Model Referenced One-to-Many Relationships Between Documents上的mongodb文档中,他们给出了以下答案:

{
   _id: "oreilly",
   name: "O'Reilly Media",
   founded: 1980,
   location: "CA"
}

{
    _id: 123456789,
    title: "MongoDB: The Definitive Guide",
    author: [ "Kristina Chodorow", "Mike Dirolf" ],
    published_date: ISODate("2010-09-24"),
    pages: 216,
    language: "English",
    publisher_id: "oreilly"
}

{
    _id: 234567890,
    title: "50 Tips and Tricks for MongoDB Developer",
    author: "Kristina Chodorow",
    published_date: ISODate("2011-05-06"),
    pages: 68,
    language: "English",
    publisher_id: "oreilly"
}

这是文档错误吗?示例对_id的使用似乎与Mongodb's ObjectId的文档描述相冲突。

对于publisher_id,正确的解决方案是否具有12字节的BSON对象ID?

1 个答案:

答案 0 :(得分:3)

我认为_id的唯一要求是独一无二的。如果您没有明确地给出一个,那么生成的是对象ID,如文档中所述。

请参阅您要链接的同一地点的引文:

  

因为ObjectId很小,很可能是唯一的,并且生成速度很快,所以如果没有指定_id字段,MongoDB会使用ObjectIds作为_id字段的默认值