Что то не так делаю, потому что на выходе получаю один лишь объект с пользовательскими данными и всё
Есть коллекция с постами в которых есть поле с комментариями, вот структура документа (схема mongoose)
{
url: { type: String },
comments: [{
owner: { type: mongoose.Schema.Types.ObjectId, ref: 'Users', required: !0 },
post: { type: String, trim: !0, required: !0 },
public: { type: Number, default: 0 },
createdAt: { type: Date, default: Date.now }
}]
}
Цель простая, получить комменты и к каждому owner присвоить данные из коллекции users, вот что ХОЧУ получить:
{
comments: [{
owner: {
_id: 'User ID',
avatar: 'user avatar'
},
post: 'текст комментария',
createdAt: 'тут дата создания коммента'
}]
}
Пытаюсь делать так
Posts.aggregate([
{ $match: { url: 'url-url' } },
{
$lookup: {
from: 'users',
localField: 'comments.owner',
foreignField: '_id',
as: 'comments.owner'
}
}, {
$project: {
_id: 1,
comments: 1
}
}
]).....
На выходе получаю не то что нужно
"comments":{
"owner":[
{
"_id":"54ad4806f273e66f2bfa6984",
"username":"username",
"avatar":"54ad4806f273e66f2bfa6984.jpg",
"createdAt":"2013-06-16T22:11:37.000Z"
}
]
}
Как правильно построить запрос?