У меня есть две коллекции, одна коллекция looksee, другая коллекция assignee_looksee, я хочу получить результат, который соответствует условию looksee_assigne receient_user, и покажу данные looksee и покажу результат, другой assignee_looksee, кроме совпадения receiveient_user.
$ условие соответствия не работаетв "is_seen": true в результате массива
LookseeAssignee.aggregate([
{ '$match': {"receipient_user": mongoose.Types.ObjectId(sender_user_id)}},
{ "$lookup": {
"from": "looksees",
"localField": "looksee_id",
"foreignField": "_id",
"as": "looksee_info",
}},
{ "$unwind": "$looksee_info" },
{ "$lookup": {
"from": "looksee_assignees",
"localField": "looksee_info._id",
"foreignField": "looksee_id",
"as": "looksee_assignee_info",
}},
// { "$unwind": "$looksee_assignee_info" },
{ "$match": { "looksee_assignee_info": {
$elemMatch: {"status": 1}
}
}
}
], function(err, looksee_receive){
res.send(looksee_receive);
});
Результат:
'looksee_info': {
'_id': '5cb58a857b96bd0e413b4fd5',
'is_abandoned': false,
'abandoned_time': null,
'sender_id': '5c4deaf53c45af6db6d9db30',
'__v': 0
},
'looksee_assignee_info': [
{
'_id': '5cb58a857b96bd0e413b4fd6',
'receipient_user': '5c63b8f507e125ab4f320e06',
'is_seen': false,
},
{
'_id': '5cb58a857b96bd0e413b4fd7',
'receipient_user': '5c4deaf53c45af6db6d9db30',
'is_seen': true,
},
{
'_id': '5cb58a857b96bd0e413b4fd8',
'receipient_user': '5c6e472d88138d30a0104b6b',
'is_seen': false,
}
]