$range(数组表达式)

适用对象: MongoDB vCore

$range 运算符用于生成顺序整数数组。 此运算符对于在特定范围内创建数字数组特别有用,然后可用于各种目的,如分页、索引或生成测试数据。

语法

$range 运算符的语法为:

$range: [ <start>, <end>, <step> ]

参数

说明
start 范围的起始值(包括)。
end 范围的结束值(不包括)。
step 范围中每个数字之间的增量值(可选,默认值为 1)。

示例

下面是演示如何使用 $range 运算符的一些示例。

示例 1:生成一系列数字

若要生成从 0 到 9 的整数数组,请执行以下操作:

db.stores.aggregate([
  { $match: { "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60"} }
, {
    $project: {
      rangeArray: { $range: [0, 5] }
    }
  }
])

查询的结果是生成一个顺序数字数组。

{
    "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
    "rangeArray": [ 0, 1, 2, 3, 4 ]
}

示例 2:生成包含步长值的数字范围

若要生成从 0 到 18 的偶数数组,请执行以下操作:

db.stores.aggregate([
  { $match: { "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60"} }
, {
    $project: {
      evenNumbers: { $range: [0, 8, 2] }
    }
  }
])

查询的结果是生成一个偶数数组,按 2 递增。

{
    "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
    "rangeArray": [ 0, 2, 4, 6 ]
}

- 查看用于从 MongoDB 迁移到 Azure Cosmos DB for MongoDB (vCore) 的选项 - 详细了解与 MongoDB 的功能兼容性