MongoDB $arrayElemAt 运算符
MongoDB中提供了不同类型的在聚合流水线阶段使用和$ arrayElemAt运算符就是其中之一rray表达式运算符。此运算符用于返回存在于给定数组的指定索引上的元素。
句法:
{ $arrayElemAt: [ , ] }
这里,数组在解析为数组之前必须是有效的表达式,而indx在解析为整数之前必须是有效的表达式。
- 如果indx 的值为正,则此运算符将返回从数组开头开始的indx位置的元素。
- 如果indx 的值为负,则此运算符将从数组末尾返回indx位置处的元素。
- 如果indx超出数组边界,则此运算符不返回任何结果。
例子:
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: arrayExample
Document: three documents that contain the details in the form of field-value pairs.
使用$arrayElemAt运算符:
在本例中,我们将使用$arrayElemAt运算符在指定索引上查找数组的元素(即fruits 字段的值)。
db.arrayExample.aggregate([
... {$match: {name: "Bongo"}},
... {$project: {
... firstItem: {$arrayElemAt: ["$fruits", 0]},
... lastItem: {$arrayElemAt: ["$fruits", -1]}}}])
在嵌入式文档中使用$arrayElemAt运算符:
在此示例中,我们将使用$arrayElemAt运算符在指定索引上查找数组的元素(即 favGame.outdoorGames 字段的值)。
db.arrayExample.aggregate([
... {$match: {name: "Piku"}},
... {$project: {
... firstItem: {$arrayElemAt: ["$favGame.outdoorGames", 0]},
... item: {$arrayElemAt: ["$favGame.outdoorGames", 2]}}}])