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

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

聚合操作符。在数组中找出等于给定值的第一个元素的下标,如果找不到则返回 -1。

参数

value: Expression[]

[ <array expression>, <search expression>, <start>, <end> ]

返回值

Object

API 说明

语法如下:

  1. db.command.aggregate.indexOfArray([ <array expression>, <search expression>, <start>, <end> ])
字段类型说明
<array>string一个可以解析为数组的表达式,如果解析为 null,则 indexOfArray 返回 null
<search>string对数据各个元素应用的条件匹配表达式
<start>integer可选,用于指定搜索的开始下标,必须是非负整数
<end>integer可选,用于指定搜索的结束下标,必须是非负整数,指定了 <end> 时也应指定 <start>,否则 <end> 默认当做 <start>

参数可以是任意解析为数组的表达式。

示例代码

假设集合 stats 有如下记录:

  1. {
  2. "_id": 1,
  3. "sales": [ 1, 6, 2, 2, 5 ]
  4. }
  5. {
  6. "_id": 2,
  7. "sales": [ 4, 2, 1, 5, 2 ]
  8. }
  9. {
  10. "_id": 3,
  11. "sales": [ 2, 5, 3, 3, 1 ]
  12. }
  1. const $ = db.command.aggregate
  2. db.collection('stats').aggregate()
  3. .project({
  4. index: $.indexOfArray(['$sales', 2, 2])
  5. })
  6. .end()

返回结果如下:

  1. { "_id": 1, "index": 2 }
  2. { "_id": 2, "index": 4 }
  3. { "_id": 3, "index": -1 }