为MongoDB聚合中的字段分配增量编号
我有一个MongoDB聚合,每个文档都有一个字段groupNumber,如下所示: 我需要每个组号都有一个不同的编号,每个文档可以是增量1,2,3 我发现的大多数解决方案都使用find,但我认为这不能用于聚合为MongoDB聚合中的字段分配增量编号,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有一个MongoDB聚合,每个文档都有一个字段groupNumber,如下所示: 我需要每个组号都有一个不同的编号,每个文档可以是增量1,2,3 我发现的大多数解决方案都使用find,但我认为这不能用于聚合 提前感谢。您可以通过查找来完成此操作,但我认为它无法很好地扩展。我认为这应该以某种方式保持,可能是$out到另一个集合,这样数字是稳定的,删除或插入文档不会改变任何其他组的数字 db.target.aggregate([ {"$lookup":{ "from":"t
提前感谢。您可以通过查找来完成此操作,但我认为它无法很好地扩展。我认为这应该以某种方式保持,可能是$out到另一个集合,这样数字是稳定的,删除或插入文档不会改变任何其他组的数字
db.target.aggregate([
{"$lookup":{
"from":"target",
"as":"looked",
"let":{"srcId":"$_id"},
"pipeline":[
{"$match":{"$expr":{"$lte":["$_id","$$srcId"]}}},
{"$group":{"_id":"null", "cnt":{"$sum":1}}}
]
}},
{"$addFields":{"groupNumber":{"$arrayElemAt":["$looked.cnt",0]}}},
{"$project":{"looked":0}}
])