2012-03-02 62 views
2

我有一个嵌入另一个以下猫鼬模式:集合中的嵌入式文档id是否是唯一的?

{ 
    "_id": "4f505a866e65f3896b00002c", 
    "foo": "some value", 
    "embeds: [ 
    { 
     "_id": "4f505aa36e65f3896b000034", 
     "foo": "some value 1" 
    }, { 
     "_id": "4f2eeb8f559757bf4f000001", 
     "foo": "some value 2" 
    } 
    ] 
} 

有不到的_id S:

var EmbedSchema = new Schema({ 
    foo: String 
}); 

var ParentSchema = new Schema({ 
    foo: String 
    embeds: [EmbedSchema] 
}); 

实例和嵌入几个对象后,我会像这样结束了embeds在整个系列中独一无二?如果是的话,我正在考虑使用embeds._id来获取Parent

回答

1

如果你允许mongo创建你的_id字段,那么它们将在该集合中都是唯一的。

5

嵌入文档是完整的文档,因此它们的_id不仅在集合中是唯一的,而且它们是全球唯一的。

+0

我不知道,谢谢!在正式文档中提到这件事的时候,你碰巧得到了方便吗? – thatmarvin 2012-03-03 04:59:30

+1

嗯,不会默认为ObjectIds?我的文档中没有看到任何32位字符的GUID。 – thatmarvin 2012-03-03 07:38:49

+0

@thatmarvin:对,ObjectIDs是“伪GUID”,比GUID短4个字节。至少两者的意图是相同的。第一个链接(http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-The%5CidField)是我能找到的最佳参考。 – 2012-03-03 07:53:45

相关问题