我正试图让这样的事情发挥作用:
db.Event.find({
startDate: {
$or: [
{$and: [
{$gte: '2013-05-12'}
{$lt: '2013-05-13'}
]},
{$and: [
{$gte: '2013-05-12'}
{$lt: '2013-05-13'}
]}
]
},
foo: {
...
}
});
基本上我有一堆过滤器,其中一个是startDate
,需要匹配其中一个包含日期范围的$and
组。
答案 0 :(得分:1)
db.User.find({
$or: [{firstName:'Foo'}, {firstName:'Bar'}]
,
$or: [{lastName:'Baz'}, {lastName:'Qux'}]
}
});
你需要方形或大括号内的花括号
答案 1 :(得分:0)
您没有正确使用$or
- 这是用于联合整个查询。
在这种情况下,您只需要$in
。
db.User.find({
firstName: {
$in: ['Foo', 'Bar']
},
lastName: {
$in: ['Baz', 'Qux']
}
});
编辑:根据您的编辑,您需要使用实际示例更新示例代码,因为在给定的情况下,您的问题已通过$in
解决。