Mongodb索引文档中的数组字段

时间:2016-09-23 17:52:20

标签: arrays mongodb indexing

我是新手,试图索引内容集合。我的查询看起来像

db.contents.find({title:{$regex: /arnab/i}, tags:{$regex: /Times/i}})

下面是我的索引查询

db.contents.createIndex({title: 1, tags:1})

标签是任何数组。这个查询会起作用吗?有没有更好的方法来索引标题和数组标记。

提前致谢

1 个答案:

答案 0 :(得分:0)

可以像普通字段一样索引数组字段。在索引方面,MongoDB会自动为数组字段创建多个索引。

setData是使用正则表达式的db.contents.find({title:{$regex: /arnab/i}, tags:{$regex: /Times/i}}) case insensitive搜索。

来自官方文档:

  

对于不区分大小写的正则表达式查询,这些查询   一般不能有效使用指标。

因此,您创建的索引无法很好地利用此查询。

当搜索区分大小写时,基于正则表达式的搜索会更好地使用索引。例如。 contains

当搜索结果为db.contents.find({title:{$regex: /arnab/}, tags:{$regex: /Times/}})而不是starts with (Prefix Regex)时,情况会更好。例如。 contains