【问题标题】:Are embedded document ids unique in the collection?嵌入的文档 ID 在集合中是唯一的吗?
【发布时间】:2012-03-20 17:10:55
【问题描述】:

我有以下嵌入另一个的 Mongoose 架构:

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

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

在实例化和嵌入几个对象后,我将得到如下结果:

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

embeds 中的_ids 在整个集合中是唯一的吗?我正在考虑仅使用 embeds._id 进行查询以获取 Parent(如果是)。

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

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

    【讨论】:

    • 我不知道,谢谢!你碰巧在官方文档中提到这个的地方方便吗?
    • 嗯,mongo 不是默认使用 ObjectIds 吗?我的文档中没有看到任何 32 个字符的 GUID。
    • @thatmarvin:对,ObjectID 是“伪 GUID”,比 GUID 短四个字节。至少两者的意图是相同的。第一个链接 (mongodb.org/display/DOCS/Object+IDs#ObjectIDs-The%5CidField) 是我能找到的最佳参考。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多