0
模式是:{title: '',作者: '',後: '' 評論說:[{作者: '',評論說: ''}]}
會不會有2 作者 s在新文檔中由於$ unwind:「$ comments」?如何給comments.author一個新的字段名稱?
模式是:{title: '',作者: '',後: '' 評論說:[{作者: '',評論說: ''}]}
會不會有2 作者 s在新文檔中由於$ unwind:「$ comments」?如何給comments.author一個新的字段名稱?
$unwind
爲陣列中的每個元素輸出一個文檔。每個新文檔都將數組替換爲數組中的一個元素。在這種情況下,因爲它是嵌入文檔的數組,所以新字段的輸出將是嵌入文檔,名爲comments
,並且字段爲author
和comments
。
所以不會有衝突,因爲author
字段將被嵌入在comments
字段中。
看到這種最簡單的方法就是親自試一試:
db.test.aggregate([{ $unwind : "$comments" }]);
輸出:
{
"_id" : ObjectId("55e76c41ca8a53ab3b4e827b"),
"title" : "",
"author" : "",
"post" : "",
"comments" : { "author" : "", "comments" : "" }
}
如果你確實想扁平化嵌入文檔,並重新命名字段,你想補充$project stage進入$unwind
之後的聚合流水線。