Я не смог найти что-то относительно своей проблемы - хотя, возможно, я искал не ту вещь.
У меня довольно простая структура документа в MongoDB:
const Entry = new mongoose.Schema({
course: {
type: String,
trim: true,
required: true
},
year: {
type: Number,
required: true
},
group: {
type: String,
trim: true
},
title: {
type: String,
trim: true,
required: true
}
});
(Сокращено для лучшей читаемости.)
Мне нужно найти все Entries
, которые соответствуютодин из Courses
(схема ниже):
const Course = new mongoose.Schema({
course: String,
year: Number,
group: String,
title: String
});
Я мог бы использовать цикл for, чтобы выполнить поиск для каждого элемента в моем Courses
-Array, а затем сделать что-то подобное:
Course.find({some condition}).then(courseschema => {
for (let i = 0; i < courseschema.length; i++) {
TimetableEntry.aggregate([
{
$match: {
year: courseschema[i].year,
course: courseschema[i].course,
title: courseschema[i].title,
group: courseschema[i].group
}
}
]);
}
});
Есть ли способ сделать это в простом конвейере запросов / операций по базам данных / агрегации?Я хотел бы избежать выполнения множества запросов после одного и другого.Помощь очень ценится, спасибо!