文档菜单
文档首页
/
MongoDB 手册
/ / /

$reverseArray (聚合)

本页内容

  • 定义
  • 行为
  • 示例
$reverseArray

接受一个数组表达式作为参数,并返回一个元素顺序相反的数组。

$reverseArray有以下运算符表达式语法:

{ $reverseArray: <array expression> }

参数可以是任何有效的表达式,只要它解析为数组即可。

如果参数解析为 null 或引用一个缺失的字段,$reverseArray 返回 null

如果参数不是数组或 null 也未引用缺失的字段,$reverseArray 返回一个错误。

$reverseArray 在参数是一个空数组时返回一个空数组。

如果参数包含子数组,$reverseArray 仅操作顶层数组元素,不会反转子数组的内容。

示例 [1]
结果
{ $reverseArray: { $literal: [ 1, 2, 3 ] } }
[ 3, 2, 1 ]
{ $reverseArray:
{ $slice: [ [ "foo", "bar", "baz", "qux" ], 1, 2 ] } }
}
[ "baz", "bar" ]
{ $reverseArray: null }
null
{ $reverseArray: { $literal: [ ] } }
[ ]
{ $reverseArray: { $literal: [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] } }
[ [ 4, 5, 6 ], [ 1, 2, 3 ] ]
[1] 表中的示例使用一个字面量参数。为了避免在字面量参数是数组时产生解析歧义,您必须将字面量数组包裹在一个 $literal 表达式或保持指定参数列表的外部数组(例如 [ [ 1, 2, 3 ] ])以传递字面量数组 [1, 2, 3]

名为 users 的集合包含以下文档

{ "_id" : 1, "name" : "dave123", "favorites" : [ "chocolate", "cake", "butter", "apples" ] }
{ "_id" : 2, "name" : "li", "favorites" : [ "apples", "pudding", "pie" ] }
{ "_id" : 3, "name" : "ahn", "favorites" : [ ] }
{ "_id" : 4, "name" : "ty" }

以下示例返回一个数组,其中包含 favorites 数组元素的逆序

db.users.aggregate([
{
$project:
{
name: 1,
reverseFavorites: { $reverseArray: "$favorites" }
}
}
])

操作返回以下结果

{ "_id" : 1, "name" : "dave123", "reverseFavorites" : [ "apples", "butter", "cake", "chocolate" ] }
{ "_id" : 2, "name" : "li", "reverseFavorites" : [ "pie", "pudding", "apples" ] }
{ "_id" : 3, "name" : "ahn", "reverseFavorites" : [ ] }
{ "_id" : 4, "name" : "ty", "reverseFavorites" : null }

返回

$replaceAll

本页内容