MongoDB $ unwind字段名称冲突

时间:2015-09-02 21:34:34

标签: mongodb

架构:{标题:'',作者:'',发布:'',评论:[{作者:'& #39;,评论:''}]}

由于 $ unwind:" $ comments" ,新文档中是否会有2个作者?如何为comments.author提供新的字段名称?

1 个答案:

答案 0 :(得分:3)

$unwind为数组中的每个元素输出一个文档。每个新文档都将数组替换为数组中的一个元素。在这种情况下,因为它是一个嵌入文档数组,所以新字段的输出将是一个嵌入式文档,名为comments,字段为authorcomments

因此,author字段将嵌入comments字段中,因此不存在冲突。

最简单的方法是亲自尝试:

db.test.aggregate([{ $unwind : "$comments"  }]);

输出:

{ 
    "_id" : ObjectId("55e76c41ca8a53ab3b4e827b"), 
    "title" : "", 
    "author" : "", 
    "post" : "", 
    "comments" : { "author" : "", "comments" : "" } 
}

如果您确实想要展平嵌入文档并重命名该字段,则应在$unwind之后将$project stage添加到聚合管道中。