Command.all(values: any[]): Command

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

数组查询操作符。用于数组字段的查询筛选条件,要求数组字段中包含给定数组的所有元素。

参数

values: any[]

返回值

Command

示例代码 1:普通数组

找出 tags 数组字段同时包含 cloud 和 database 的记录

  1. const _ = db.command
  2. db.collection('todos').where({
  3. tags: _.all(['cloud', 'database'])
  4. })
  5. .get({
  6. success: console.log,
  7. fail: console.error
  8. })

示例代码 2:对象数组

如果数组元素是对象,则可以用 _.elemMatch 匹配对象的部分字段

假设有字段 places 定义如下:

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

找出数组字段中至少同时包含一个满足 “area 大于 100 且 age 小于 2” 的元素和一个满足 “type 为 mall 且 age 大于 5” 的元素

  1. const _ = db.command
  2. db.collection('todos').where({
  3. places: _.all([
  4. _.elemMatch({
  5. area: _.gt(100),
  6. age: _.lt(2),
  7. }),
  8. _.elemMatch({
  9. name: 'mall',
  10. age: _.gt(5),
  11. }),
  12. ]),
  13. })
  14. .get({
  15. success: console.log,
  16. fail: console.error,
  17. })