Command.pull(value: any): Command

支持端:小程序 2.8.3 起, 云函数 1.2.1

数组更新操作符。给定一个值或一个查询条件,将数组中所有匹配给定值或查询条件的元素都移除掉。

参数

value: any

值或查询条件

返回值

Command

示例代码 1:根据常量匹配移除

  1. const _ = db.command
  2. db.collection('todos').doc('doc-id').update({
  3. data: {
  4. tags: _.pull('database')
  5. }
  6. })

示例代码 2:根据查询条件匹配移除

  1. const _ = db.command
  2. db.collection('todos').doc('doc-id').update({
  3. data: {
  4. tags: _.pull(_.in(['database', 'cloud']))
  5. }
  6. })

示例代码 3:对象数组时,根据查询条件匹配移除

假设有字段 places 数组中的元素结构如下

  1. {
  2. "type": string
  3. "area": number
  4. "age": number
  5. }
  1. const _ = db.command
  2. db.collection('todos').doc('doc-id').update({
  3. data: {
  4. places: _.pull({
  5. area: _.gt(100),
  6. age: _.lt(2),
  7. })
  8. }
  9. })

示例代码 4:有嵌套对象的对象数组时,根据查询条件匹配移除

假设有字段 cities 数组中的元素结构如下

  1. {
  2. "name": string
  3. "places": Place[]
  4. }

Place 结构如下:

  1. {
  2. "type": string
  3. "area": number
  4. "age": number
  5. }

可用 elemMatch 匹配嵌套在对象数组里面的对象数组字段 places

  1. const _ = db.command
  2. db.collection('todos').doc('doc-id').update({
  3. data: {
  4. cities: _.pull({
  5. places: _.elemMatch({
  6. area: _.gt(100),
  7. age: _.lt(2),
  8. })
  9. })
  10. }
  11. })