$range

$range 运算符用于生成顺序整数数组。 运算符有助于在区域中创建数字数组,这对于分页、索引或测试数据非常有用。

语法

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

参数

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

示例

示例 1:生成一系列数字

该示例演示如何使用运算符生成从 0 到 5 的整数数组,其中它包含左侧边界,同时排除右侧。

db.stores.aggregate([
  { $match: { "_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6"} }
, {
    $project: {
      rangeArray: { $range: [0, 5] }
    }
  }
])

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

{
    "_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
    "rangeArray": [ 0, 1, 2, 3, 4 ]
}

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

该示例演示如何使用运算符生成从 0 到 18 的偶数数组。

db.stores.aggregate([
  { $match: { "_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6"} }
, {
    $project: {
      evenNumbers: { $range: [0, 8, 2] }
    }
  }
])

查询生成偶数数组。

{
    "_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
    "rangeArray": [ 0, 2, 4, 6 ]
}

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