我有一个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结果
有没有办法做到这一点并使用索引?
答案 0 :(得分:2)
如果您查询的是子文档,则查询可能不会返回任何文档,因为字段为order matter。最好的办法是创建coumpound indexes并使用dot notation。
db.sCriteria.count({ "criteria.a": "1", "criteria.b": "2", "criteria.c": /3/})