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
为MongoDB聚合中的字段分配增量编号_Mongodb_Aggregation Framework - Fatal编程技术网

为MongoDB聚合中的字段分配增量编号

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

我有一个MongoDB聚合,每个文档都有一个字段groupNumber,如下所示:

我需要每个组号都有一个不同的编号,每个文档可以是增量1,2,3

我发现的大多数解决方案都使用find,但我认为这不能用于聚合


提前感谢。

您可以通过查找来完成此操作,但我认为它无法很好地扩展。我认为这应该以某种方式保持,可能是$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}}
])