我知道这个问题被多次询问,但就我的搜索技巧而言,每篇文章都是如何在SQL数据库中实现这一点,而没有提到NoSQL数据库。
我有要为其实现标记功能的文档 用户可以使用他们想要的任何字符串标记它们,然后我需要能够尽快查询文档(通过这些通用标记)
我的标签应该有String
数组(这样我可以支持任意数量的标签),就像这样
{"_id":"aaa", "prop":"value", "tags":["tag1","tag2","tagN"]}
或将标签数量限制为5,并将它们作为不同的属性,例如
{"_id":"aaa", "prop":"value", "tag1":"value", "tag2":"value", "tag3":"value" }
哪种结构对于快速查询更好,特别是在mongodb中?
使用第二个结构可以让我通过这个字段索引集合,但建议使用5个索引吗?我的标签应该少吗?
答案 0 :(得分:1)
您只想使用数组,这是您拥有的第一个示例。这将允许您拥有一致的模型和索引。
{"_id":"aaa", "prop":"value", "tags":["tag1","tag2","tagN"]}
如果索引包含数组的字段,MongoDB会在“多键索引”中单独索引数组中的每个值。[1]
[1] http://docs.mongodb.org/manual/core/indexes/#multikey-indexes