mongodb比较两个数组并返回差

时间:2019-12-08 18:57:58

标签: mongodb aggregation-framework

我有如下的mongoDB集合


{
_id: 1
"probes": ["A", "B"],
"result": ["A", "B","C","D"],
}

我想将探针与结果进行比较,并创建一个名为exception的新字段

{
_id: 1
"probes": ["A", "B"],
"result": ["A", "B","C","D"],
"exception" : ["C","D"]
}

如果异常字段已经存在,则必须将其覆盖。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用$setDifference运算符:

db.collection.aggregate([
    {
        $addFields: {
            exception: {
                $setDifference: [ "$result", "$probes" ]
            }
        }
    }
])

Mongo Playground