Здравствуйте!
Подскажите, пожалуйста, как получить login пользователя для каждого сообщения? (выделенная строка)
return RoomModel.aggregate().match({ "users": new mongoose.Types.ObjectId(userId)})
.lookup({ from: 'users', localField: 'owner', foreignField: '_id', as: 'owner' }).unwind({path:"$owner"})
.lookup({ from: 'users', localField: 'users', foreignField: '_id', as: 'users' })
.lookup({from: 'roommessages', localField: '_id',foreignField: 'room', as: 'messages' })
.lookup({ from: 'users', localField: 'messages.author', foreignField: '_id', as: '$messages.author' })
.addFields({messages: {$filter: {input: '$messages', as: 'item', cond: {$in: [new mongoose.Types.ObjectId(userId), '$$item.recipients' ]}}}})
.project({ _id:0,name:1,"password": { $ne: [ "$password", "empty" ] }, "owner.login":1, "users.login":1,
"messages.message":1, "messages.author": 1,
});
Строка
.lookup({ from: 'users', localField: 'messages.author', foreignField: '_id', as: '$messages.author' })
не работает так, как нужно.