2012-11-19 27 views
0

我知道这个问题曾多次提出过,但就我的搜索技能而言,每篇文章都是如何在SQL数据库中实现这一点,并且没有提及NoSQL数据库。如何在MongoDb中存储文档的“标签”?

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

我应该有一个String阵列对我的代码(这将让我支持任何数量的标签),这样

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

或限制的标签,比如说,5量,并将它们作为不同的属性,这样

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

哪ST对于快速查询,特别是在mongodb中,结构会更好吗?

使用第二个结构将允许我通过此字段为集合建立索引,但建议使用5个索引?我应该有更少的标签吗?

回答

1

你只是想使用一个数组,你有第一个例子。这将允许你有一个一致的模型和索引。

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

如果索引的阵列中的每个单独的值包含一个阵列,MongoDB的索引,在字段“多键索引。” [1]

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

相关问题