схемы: {названия: '', автор: '', должность: '', комментарии: [{автор: '', комментарии: ''}]}
Будет ли 2 автор s в новом документе в результате $ Расслабьтесь: «$ comments»? Как указать новое имя поля comments.author?
схемы: {названия: '', автор: '', должность: '', комментарии: [{автор: '', комментарии: ''}]}
Будет ли 2 автор s в новом документе в результате $ Расслабьтесь: «$ 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
.