MongoDB通过将子属性向上移动一级来转换文档

时间:2017-12-28 05:31:08

标签: mongodb aggregation-framework

我有以下文件。

{ "id" : 2, "color" : { "description" : "red" } }
{ "id" : 2, "color" : { "description" : "blue" } }
{ "id" : 2, "color" : { "description" : "purple" } }
{ "id" : 3, "color" : { "description" : "red" } }
{ "id" : 3, "color" : { "description" : "orange" } }

但我希望将颜色值上移一级:

{ "id" : 2, "color" : "red" } 
{ "id" : 2, "color" : "blue" } 
{ "id" : 2, "color" : "purple" } 
{ "id" : 3, "color" : "red" } 
{ "id" : 3, "color" : "orange" } 

有没有办法将此作为聚合管道的一部分?

1 个答案:

答案 0 :(得分:1)

您是否希望插入文档或仅将结果作为聚合查询的一部分返回结果?如果以后使用聚合,您可以像下面这样做 -

> db.coll1.aggregate([{$project:{id:'$id','color':'$color.description'}}])

,结果是

{ "_id" : ObjectId("5a4486946c4238ae80280941"), "id" : 2, "color" : "red" }

请告诉我这是否是您要找的?