MongoDB使用$ gt查询$ in

时间:2013-12-09 21:08:48

标签: mongodb

假设我在一个集合中有三个文档:

{
    ...
    houses: [{state: 'CA', quantity: 2}, {state: 'NY', quantity: 2}]
},
{
    ...
    houses: [{state: 'CA', quantity: 1}, {state: 'NY', quantity: 2}]
}
{
    ...
    houses: [{state: 'NY', quantity: 2}]
}

我想写一个与“在加利福尼亚或纽约有多个房子的人”相匹配的查询。我知道我可以执行类似{houses.state: {$in: ['CA', 'NY']}}之类的操作,但如何将其与$gt结合使用才能获得匹配?

1 个答案:

答案 0 :(得分:3)

如果要匹配相同数组元素中的多个条件,则需要使用$elemMatch

 
db.test.find({
    houses: {$elemMatch: {state: {$in: ['CA', 'NY']}, quantity: {$gt: 1}}}
})