2017-10-12 76 views
1

如果我有一个文件,该文件包含一个嵌入对象作为其字段中的一个的值,如下所示:经由MongoDB中的聚合框架检索嵌入对象作为文档

{ _id: ObjectId("..."), embeddedObject: { k1: "val1", k2: "val2", k3: "val3" } } 

然后哪能使用聚合框架(管线运算符)检索嵌入对象本身作为输出文档?或者这是不可能的?

也就是说,我需要最终得到公正的结果如下:

{ k1: "val1", k2: "val2", k3: "val3" } 

虽然运营商$项目,$匹配,$开卷,$组解决关闭的问题,没有人似乎能够帮助正好符合我上述的要求。

回答

1

这可以通过使用一个聚合管道运算符$replaceRoot

db.[collection].aggregate([ 
     { 
     $replaceRoot: { newRoot: "$embeddedObject" } 
     } 
    ]); 

这将导致在下面输出来实现:

{ k1: "val1", k2: "val2", k3: "val3" } 
+0

精湛。有帮助。正是我需要的。感谢您的及时回复! –