架构:{标题:'',作者:'',发布:'',评论:[{作者:'& #39;,评论:''}]}
由于 $ unwind:" $ comments" ,新文档中是否会有2个作者?如何为comments.author提供新的字段名称?
答案 0 :(得分:3)
$unwind
为数组中的每个元素输出一个文档。每个新文档都将数组替换为数组中的一个元素。在这种情况下,因为它是一个嵌入文档数组,所以新字段的输出将是一个嵌入式文档,名为comments
,字段为author
和comments
。
因此,author
字段将嵌入comments
字段中,因此不存在冲突。
最简单的方法是亲自尝试:
db.test.aggregate([{ $unwind : "$comments" }]);
输出:
{
"_id" : ObjectId("55e76c41ca8a53ab3b4e827b"),
"title" : "",
"author" : "",
"post" : "",
"comments" : { "author" : "", "comments" : "" }
}
如果您确实想要展平嵌入文档并重命名该字段,则应在$unwind
之后将$project stage添加到聚合管道中。