Javascript MongoDB-聚合-对集合中数组字段的最后一个元素进行筛选
我在MongoDB中有一个设备集合,其结构如下:Javascript MongoDB-聚合-对集合中数组字段的最后一个元素进行筛选,javascript,node.js,arrays,mongodb,aggregation-framework,Javascript,Node.js,Arrays,Mongodb,Aggregation Framework,我在MongoDB中有一个设备集合,其结构如下: { "group": [ "group1" ] }, { "group": [ "group1", "group2" ] }, { "group": [] }, { "group": [ "group3", "gro
{
"group": [
"group1"
]
},
{
"group": [
"group1",
"group2"
]
},
{
"group": []
},
{
"group": [
"group3",
"group4"
]
}
<>我如何过滤或聚合文档,以便只返回每个数组数组的最后一个元素,包括空白数组?
预期结果:
["group1", "group2", "", "group4"]
您可以使用和获取最后一个元素。此外,还需要指定默认值(空字符串):
谢谢@mickl!这正是我需要的。
db.collection.aggregate([
{
$group: {
_id: null,
lastElements: { $push: { $ifNull: [ { $arrayElemAt: [ "$group", -1 ] }, "" ] } }
}
}
])