我是新手,试图索引内容集合。我的查询看起来像
db.contents.find({title:{$regex: /arnab/i}, tags:{$regex: /Times/i}})
下面是我的索引查询
db.contents.createIndex({title: 1, tags: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
。