我正在寻找一种在MongoDB上进行异或的方法。
例如,$or
按预期工作:
> db.mycollection.find({ '$or': [ { 'a': 1 }, { 'b': 1 } ] })
但我需要找到a
为1或b
为1的记录,但不是两者都有。像这样:
> db.mycollection.find({ '$xor': [ { 'a': 1 }, { 'b': 1 } ] })
(不起作用 - 虚构语法)
MongoDB是否支持XOR逻辑运算符?如果没有,怎样才能最好地模拟?
答案 0 :(得分:5)
这是否满足您的期望?
db.mycollection.find({ '$or': [ { 'a': 1 , 'b' : {$ne : 1} }, { 'b': 1, 'a' : {$ne : 1} } ] })
答案 1 :(得分:2)