я новичок в монгобд. я присоединился к двум таблицам, используя $lookup. у меня две модели Posts и Savedpost. Мне нужно сравнить два поля postId и savedBy. Я проверяю документацию mongoDb для поиска и пытаюсь
Posts.aggregate([{
$lookup: {
from: Savedpost.collection.name, // collection name in db
localField: "_id", // Post id from Post collection
foreignField: "postId", // postId from Savedpost collection
as: "isSaved"
},
}]).exec(function(err, students) {
res.send(students)
});
здесь я сравниваю только с postId но мне нужно сравнить оба поля postId и savedBy это возможно и как ?
Спасибо





Вот как выполнить $lookup на основе двух полей:
db.posts.aggregate([
{
$lookup: {
from: "savedposts",
let: {
first: "$_id",
second: "$savedby"
},
pipeline: [
{
$match: {
$expr: {
$and: [
{
$eq: [
"$postid",
"$$first"
]
},
{
$eq: [
"$saved",
"$$second"
]
}
]
}
}
}
],
as: "result"
}
}
])
Объяснение:
В примере:
первый --> сообщения._id --> сохраненные сообщения.postid
второй --> posts.savedby --> saveposts.saved