Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 聚合和分组以从Mongo db中的集合中获取最后一行_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 聚合和分组以从Mongo db中的集合中获取最后一行

Mongodb 聚合和分组以从Mongo db中的集合中获取最后一行,mongodb,aggregation-framework,Mongodb,Aggregation Framework,从下面的mongo文档中,我想获得versions.errors中的最后一条记录。 从下面的文档中,我只需要最后一级、消息和时间戳,其中消息显示“与priceZone=AMMO关联的具有FERC信用标志的NITS预订数量为0,此值应等于1” 我尝试使用聚合查询,例如: db.getCollection('ValidationResults').aggregate( {"$match": { "_id.objectIdentifier.objectName" : "SinkPriceZonesWi

从下面的mongo文档中,我想获得versions.errors中的最后一条记录。 从下面的文档中,我只需要最后一级、消息和时间戳,其中消息显示“与priceZone=AMMO关联的具有FERC信用标志的NITS预订数量为0,此值应等于1”

我尝试使用聚合查询,例如:

db.getCollection('ValidationResults').aggregate(
{"$match": { "_id.objectIdentifier.objectName" : "SinkPriceZonesWithFercCreditFlag", "_id.settlementInstanceId": "3b37de20-e47e-435c-896e-8d9dea0eb63a"}},
{ "$unwind": "$Versions" })

不确定如何在时间戳字段上使用$group从数组中获取最后一个元素,您可以使用运算符并将
-1
作为索引传递。从文档中:

如果为负,$arrayElemAt返回idx位置的元素,从数组末尾开始计数


我只是问,有没有办法只显示这一行而不显示$addFields。我正试图用Java编写这个聚合函数,只是想检查一下。@janopantry project而不是
addFields
。因此,您只能得到最后一行
db.getCollection('ValidationResults').aggregate(
{"$match": { "_id.objectIdentifier.objectName" : "SinkPriceZonesWithFercCreditFlag", "_id.settlementInstanceId": "3b37de20-e47e-435c-896e-8d9dea0eb63a"}},
{ "$unwind": "$Versions" })
db.ValidationResults.aggregate(
    [
        {
            $match: { 
                "_id.objectIdentifier.objectName" : "SinkPriceZonesWithFercCreditFlag", 
                "_id.settlementInstanceId": "3b37de20-e47e-435c-896e-8d9dea0eb63a"
            }
        },
        { $unwind: "$Versions" },
        { 
            $addFields: {
                lastError: { $arrayElemAt: [ "$Versions.errors", -1 ] }
            } 
        }
])