【问题标题】:How should I store the "tags" of a document in MongoDb?我应该如何在 MongoDb 中存储文档的“标签”?
【发布时间】:2012-11-19 16:49:25
【问题描述】:

我知道这个问题被问了好几次,但就我的搜索技能而言,每篇文章都是如何在 SQL 数据库中实现这一点,并没有提到 NoSQL 数据库。

我有想要为其实施标记功能的文档。
用户将能够用他们想要的任何字符串标记它们,然后我需要能够尽可能快地查询文档(通过这些通用标签)

我是否应该为我的标签设置一个String 数组(这将允许我支持任意数量的标签),像这样

{"_id":"aaa", "prop":"value", "tags":["tag1","tag2","tagN"]}

或将标签的数量限制为 5 个,并将它们作为不同的属性,像这样

{"_id":"aaa", "prop":"value", "tag1":"value", "tag2":"value", "tag3":"value" }

哪种结构更适合快速查询,特别是在 mongodb 中?

使用第二个结构可以让我通过这个字段来索引集合,但是推荐 5 个索引吗?我应该少一些标签吗?

【问题讨论】:

    标签: mongodb database-design optimization


    【解决方案1】:

    您只是想使用一个数组,这是您拥有的第一个示例。这将使您拥有一致的模型和索引。

    {"_id":"aaa", "prop":"value", "tags":["tag1","tag2","tagN"]}
    

    如果您索引包含数组的字段,MongoDB 会在“多键索引”中单独索引数组中的每个值。[1]

    [1]http://docs.mongodb.org/manual/core/indexes/#multikey-indexes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2015-11-24
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      相关资源
      最近更新 更多