db.getCollection('notification').find({},{statusList:{$slice:-1}})此查询正在获取预期的输出,但在java中,我无法找到此问题的解决方案。有人能提供此问题的解决方案吗?我只想使用聚合函数
wj8zmpe11#
请尝试使用$last聚合运算符。
$last
db.getCollection('notification').aggregate([ { $project: { _id: 0, last: { $last:"$statusList"} } } ])
jobtbby32#
尝试使用这个,它给出了与$last相同的输出:
db.getCollection('notification').aggregate([ { $project: { last: { $arrayElemAt: [ "$project", -1 ] } } } ])
4dbbbstv3#
聚合运算符$last可用于访问数组的最后一个元素:
db.collection.aggregate([ { $addFields: { last: { $last: "$yourArray" } } }, { $match: { last: "C" } } ])
或
db.getCollection('notification').aggregate([ { $project: { last: { statusList: [ "$slice", -1 ] } } } ])
你也可以参考:MongoDB - Query on the last element of an array?
3条答案
按热度按时间wj8zmpe11#
请尝试使用
$last
聚合运算符。jobtbby32#
尝试使用这个,它给出了与$last相同的输出:
4dbbbstv3#
聚合运算符$last可用于访问数组的最后一个元素:
或
你也可以参考:MongoDB - Query on the last element of an array?