要进行上下文设置,请执行以下操作:
批处理文件有BachItems,每个BatchItem都是一行,并且有一个行号。每行都是按顺序处理的。
我是NoSQL和mongo的新手,我想知道如何查询每个BatchItem (行号)上执行的最后一个处理步骤(最近的EventType列),按BatchId过滤?例如,对于BatchId“102030”,它应该返回以下结果:

我相信我可以使用聚合和组函数来实现这一点,但不知道如何实现。谢谢。
发布于 2019-02-18 14:07:41
您可以按如下方式操作:
db.batch.aggregate([
{
$match: {
"BatchId": 102030
}
},
{ $sort: { "Date": -1 } },
{
$group: {
_id: "$BatchItemId",
"doc": { "$push": { lastEventName: "$EventType" } },
}
},
{
$replaceRoot: {
newRoot: { $arrayElemAt: ["$doc", 0] }
}}
])https://stackoverflow.com/questions/54739350
复制相似问题