MongoDB是否支持XOR(异或)?

joh*_*odo 7 mongodb

我正在寻找一种在MongoDB上进行异或的方法.

例如,$or按预期工作:

> db.mycollection.find({ '$or': [ { 'a': 1 }, { 'b': 1 } ] })
Run Code Online (Sandbox Code Playgroud)

但我需要找到a1或b1的记录,但不是两者.像这样的东西:

> db.mycollection.find({ '$xor': [ { 'a': 1 }, { 'b': 1 } ] })
Run Code Online (Sandbox Code Playgroud)

(不起作用 - 虚构的语法)

MongoDB是否支持XOR逻辑运算符?如果没有,最好如何模拟?

Wiz*_*ard 6

这满足了你的期望吗?

db.mycollection.find({ '$or': [ { 'a': 1 , 'b' : {$ne : 1} }, { 'b': 1, 'a' : {$ne : 1} } ] })
Run Code Online (Sandbox Code Playgroud)