在$ elemMatch操作方面,我看到2.0.7和2.2.0之间存在一些差异。
在2.2.0中,我确实通过此查询获得了结果:
db.testColl.find( { "metadata" : {$elemMatch : {$gt : {age:23}, $lt : {age:99}} }});
在2.0.7中,我没有得到任何结果。
出于测试目的,我的testColl集合中只有一个文档:
{
"_id" : ObjectId("4fb2974cbedb4a626109b002"),
"metadata" : [
{
"age" : 59
},
{
"gender" : "FEMALE"
}
]
}
有谁知道为什么这在2.2.0中有效,而不是2.0.7?
根据这个:
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24elemMatch
v1.4 + 支持 elemMatch谢谢, 盖伦
答案 0 :(得分:1)
如果您正在寻找适用于这两个版本的方法,则不需要在此使用$elemMatch
,因为您只是在比较单个字段,因此您可以使用更简单的查询。试试这个:
db.testColl.find({ 'metadata.age': { $gt: 23, $lt: 99 }});