【发布时间】:2015-04-29 01:34:53
【问题描述】:
假设,我们有文件:
{_id : 1, arr : [5,50]}
{_id : 2, arr : [11,53]}
目标是找到在数组中有 2 个值的文档,一个必须在 range(4,9) 中,第二个在 range(45,55) 中。 在这种情况下,只有 _id : 1 的文档应该返回。
试过这个:
db.Collection.find({arr : {$elemMatch : {$gte : 4, $lte : 9}}}) - 返回第一个文档
db.Collection.find({arr : {$elemMatch : {$gte : 45, $lte : 55}}}) - 两者都返回
如何将这些标准组合在一起?
db.Collection.find({arr : {$and : [{$elemMatch : {$gte : 4, $lte : 9}}, {$elemMatch : {$gte : 45, $lte : 55}}]}})
returns : error: { "$err" : "invalid operator: $and", "code" : 10068 }
【问题讨论】:
标签: arrays mongodb mongodb-query