我有MongoDB 4.0 Atlas实例,我需要将聚合结果附加到现有集合中而不删除现有项目。
我需要在$ out中使用“ mode:replaceDocuments”之类的东西,但是该模式仅在MongoDB 4.2中可用
我想要得到的东西:
源1-现有集合“ A”:
[{ "_id": "id_1", "a": 1 },
{ "_id": "id_2", "a": 2 }]
来源2-汇总结果数据:
[{ "_id": "id_3", "a": 3 },
{ "_id": "id_4", "a": 4 }]
结果-将数据添加到现有集合“ A”中:
[{ "_id": "id_1", "a": 1 },
{ "_id": "id_2", "a": 2 },
{ "_id": "id_3", "a": 3 },
{ "_id": "id_4", "a": 4 }]
答案 0 :(得分:0)
在MongoDB v4.2(当前为v4.2.0-rc1)中,您可以利用Aggregation Pipeline $merge stage附加到现有集合中。
$merge
阶段:
对于您的示例,您可以执行以下操作:
db.collection.aggregate([ ....,
{ "$merge" : { into: "A" } } // Has to be the last stage in the pipeline
]);
$merge
有很多用例: