我正在运行以下脚本来使用$或operator更新数据。
db.getCollection('test').update(
{$or: [{c1:true, c2: true }] } ,
{$set: {rs: true }},
{multi:true}
)
预计所有后续行都应该更新,但只有第3行和第3行。 4美元,或者作为$和$工作。
/ * 1 * / { " C1" :是的 }
/ * 2 * / { " C2" :是的 }
/ * 3 * / { " C1" :真的, " C2" :是的 }
/ * 4 * / { " C1" :真的, " C2" :是的 }
答案 0 :(得分:1)
$or
查询运算符采用一组查询表达式对象,但是您将两个术语都传递到单个对象中,使其表现为AND。
相反,将每个$or
术语放在数组中自己的对象中,如下所示:
db.getCollection('test').update(
{$or: [{c1:true}, {c2: true}]},
{$set: {rs: true}},
{multi:true}
)