Mongodb - 使用正则表达式搜索来匹配嵌入的文档

时间:2015-07-14 12:40:09

标签: regex mongodb mongodb-query

我有一个Mongo Collection:

db.sCriteria.insert({criteria : {a:"1",b:"2",c:"3"}})
db.sCriteria.insert({criteria : {a:"1",d:"2",e:"3"}})

嵌入式文档“条件”的属性可能会有很大差异,因此我选择索引整个对象:

db.sCriteria.ensureIndex({criteria : 1})

我的查询总是针对整个对象来使用索引。例如:

db.sCriteria.find({criteria : {a:"1",b:"2",c:"3"}}).count() 
1
db.sCriteria.find({criteria : {a:"1",b:"2"}}).count() 
0

我希望能够使用正则表达式来处理某些属性。 例如:

db.sCriteria.find({criteria : {a:"1",b:"2",c:/3/}}).count() 

这总是给出0结果

有没有办法做到这一点并使用索引?

1 个答案:

答案 0 :(得分:2)

如果您查询的是子文档,则查询可能不会返回任何文档,因为字段为order matter。最好的办法是创建coumpound indexes并使用dot notation

db.sCriteria.count({ "criteria.a": "1", "criteria.b": "2", "criteria.c": /3/})