将数组插入文档的现有数组的mongodb聚合

时间:2016-12-12 15:52:09

标签: node.js mongodb

我在mongodb中有一个文档,就像这样:

{ "_id" : "a", "array" : [ { "aa" : "11", "bb" : "22" } ] }

我想在上面的数组中插入一个数组,结果如下:

{"_id":"a","array":[{"aa":"11","bb":"22","cc":[{mm:"11"},{mm:"22"}]}]}

我正在编写node.js程序并使用mongojs模块连接到mongodb。我尝试过使用db.collection.aggregate({"$unwind":"$name"}),但我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果您要更新文档,请使用update push,如下所示

db.collectionName.update({"_id":"a"},{"$push":{"array":{"cc":[{"mm":"11"},{"mm":"22"}]}}})

或者,如果您想在汇总中添加新字段,请使用projectliteral,如下所示

db.collectionName.aggregate({"$project":{"array":{"$map":{"input":"$array",
                           "as":"el","in":{"aa":"$$el.aa","bb":"$$el.bb",
                          "cc":{"$literal":[{"mm":"11"},{"mm":"22"}]}}}}}}).pretty()