【问题标题】:MongoDB: Finding by nested key vs top-level keyMongoDB:通过嵌套键与顶级键查找
【发布时间】:2011-12-19 23:25:42
【问题描述】:

选项 1:

{
  _id: ObjectId,
  text: String,
  author: {
    id: ObjectId,
    name: String,
    email: String
  }
}

选项 2:

{
  _id: ObjectId,
  text: String,
  authorId: Id,
  author: {
    name: String,
    email: String
  }
}

我有一个类似于上述选项 1 的 Post 文档架构。有一个单独的“作者”集合,上面的作者 ID 字段正在引用它。 'name' 和 'email' 在这里重复了; Author 收藏有更多作者信息。

我对 Post 集合的查询之一是查询某个作者 ID 的所有帖子。

就性能而言,是否最好使用选项 2,因为作者 ID 密钥位于文档的“顶级”?如果像选项 1 那样通过嵌套键搜索文档有什么区别吗?

【问题讨论】:

    标签: performance mongodb schema


    【解决方案1】:

    不,它不会产生显着的性能差异。 MongoDb 可以很好地索引“顶级”键或“嵌套键”。 MongoDb 可以在内部读取完整的 BSON 对象,因此可以有效地访问它的任何部分。 在这里阅读: http://www.mongodb.org/display/DOCS/BSON

    您可以尝试创建 2 个测试集合,并在查询的字段上创建索引。 性能将是相同的。

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 2021-09-24
      • 1970-01-01
      • 2011-01-15
      • 2016-01-19
      • 2018-04-08
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      相关资源
      最近更新 更多