Есть схема домашнего задания:
const schema = new Schema({
dateAssign: { type: Date, default: Date.now, index: true },
teacher: { type: Schema.ObjectId, ref: 'user', index: true },
lesson: { type: Schema.ObjectId, ref: 'lesson', index: true },
exercises: [
{ type: Schema.ObjectId, ref: 'exercise' },
],
});
mongoose.model('homework', schema)
Схема exercise:
const schema = new Schema({
block: { type: Schema.ObjectId, ref: 'lessonblock', index: true },
variant: { type: Schema.ObjectId, ref: 'variant', index: true },
result: { type: Schema.ObjectId, ref: 'exerciseresult', index: true },
variables: { type: Schema.Types.Mixed, default: {} },
start_at: { type: Date },
lock: { type: Boolean, default: false, index: true },
});
mongoose.model('exercise', schema);
Нужно найти все объекты схемы c homeworks такие, у которых во вложенном массиве exercises все элементы массива имели поле lock = true;
Пробовал так, не получается:
const HWs = await Homework.find({ teacher, 'exercises.lock': true }, null, { sort: { dateAssign: -1 }, limit: 20 })