AggregateCommand.setDifference(value: Expression[]): Object

支持端:小程序 2.7.4 起, 云函数 0.8.1

聚合操作符,输入两个集合,输出只存在于第一个集合中的元素。

参数

value: Expression[]

[<expression1>, <expression2>]

返回值

Object

API 说明

使用形式如下:

  1. setDifference([<expression1>, <expression2>])

示例代码

假设集合 test 存在以下数据:

  1. { "_id": 1, "A": [ 1, 2 ], "B": [ 1, 2 ] }
  2. { "_id": 2, "A": [ 1, 2 ], "B": [ 2, 1, 2 ] }
  3. { "_id": 3, "A": [ 1, 2 ], "B": [ 1, 2, 3 ] }
  4. { "_id": 4, "A": [ 1, 2 ], "B": [ 3, 1 ] }
  5. { "_id": 5, "A": [ 1, 2 ], "B": [ ] }
  6. { "_id": 6, "A": [ 1, 2 ], "B": [ {}, [] ] }
  7. { "_id": 7, "A": [ ], "B": [ ] }
  8. { "_id": 8, "A": [ ], "B": [ 1 ] }

下面的代码使用 setDifference,找到只存在于 B 中的数字:

  1. db.collection('test')
  2. .aggregate()
  3. .project({
  4. isBOnly: $.setDifference(['$B', '$A'])
  5. })
  6. .end()
  1. { "_id": 1, "isBOnly": [] }
  2. { "_id": 2, "isBOnly": [3] }
  3. { "_id": 3, "isBOnly": [3] }
  4. { "_id": 4, "isBOnly": [5] }
  5. { "_id": 5, "isBOnly": [] }
  6. { "_id": 6, "isBOnly": [{}, []] }
  7. { "_id": 7, "isBOnly": [] }
  8. { "_id": 8, "isBOnly": [1] }