在$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
支持elemMatch的v1.4+
谢谢你,加伦
发布于 2012-11-08 01:30:13
如果您正在寻找一种在这两个版本中都能工作的方法,那么这里不需要使用$elemMatch,因为您只是在与单个字段进行比较,这样就可以使用更简单的查询。试一试:
db.testColl.find({ 'metadata.age': { $gt: 23, $lt: 99 }});https://stackoverflow.com/questions/13275607
复制相似问题