У вас есть два варианта, как это сделать в понедельник go, причем вариант номер 1 - это тот, который я лично рекомендую, так как он будет более эффективным.
- Разделите это на два запроса :
let subject = await subjectCollection.findOne({name: subjectname});
// add validation that subject exists in case needed.
let doc = await firstCollection.findOne({name: name, subjectId: subject._id})
// you can use `find` instead if multiple documents can be matched.
Используйте
$ поиск firstCollection.aggregate([
{
$match: {
name: name
}
},
{
$lookup: {
from: "subject_collection",
let: {subjectName: subjectName},
pipeline: [
{
$match: {
$expr: {
$eq: ["$$subjectName", "$name"]
}
}
}
],
as: "subjects"
}
},
{
$match: {
"subjects.0": {$exists: true}
}
}
])