我正在使用汇总管道与$match
,$project
和$geonear
管道运营商。
在每个集合中,我都有工作日,如:
repeat_every_monday =true
,
repeat_every_tuesday=true
,
所有工作日的序列相同。
现在,如果今天是星期二,那么我必须在我的管道运算符中添加$or
条件,以便使用之前的数据获取所有记录,这些数据标记为repeat_every_tuesday=true
,
我想表达像
这样的条件操作if (name=="pankaj" and "test"=="false" || "test"==true)
这是我到目前为止所做的:
db.test.aggregate([
{'$match':{"name":"pankaj","test":false,}},
{'$project':{_id:1,name:1,test:1,sir:1}}
]).pretty()
我必须放$or
?
I have test collection and data is as below:
db.test.find().pretty()
{
"_id" : ObjectId("56e79492f286d94702cf4e31"),
"name" : "pankaj",
"test" : true,
"sir" : "cheema"
}
{
"_id" : ObjectId("56e7abb3f286d94702cf4e32"),
"name" : "pankaj",
"test" : false,
"sir" : "cheema"
}
I want a aggregate query with $match which should give me result where name is =pankaj and test is either true or false .
For example in sql :
Select * from test where name=pankaj or test=false or test =true.
答案 0 :(得分:0)
像这样使用
db.articles.aggregate( [
{ $match: { $or: [ {"$and":["name":"pankaj","test":"false"]},
{"test":"true"}]}},
] );