“文档” 菜单
文档首页
/
MongoDB Manual
/ / /

$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(聚合)

在此页面上