2017-10-12 39 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

精湛。有幫助。正是我需要的。感謝您的及時回覆! –