2014-10-18 2 views
0

У меня есть коллекция с Student и сбор в классе, класс коллекции есть studentRefs, который является списком студента Идентификаторы, но студент не свойство, которое относится к класс id.О списке запроса мангуста или MongoDB

Теперь у меня есть еще один список идентификаторов учеников, и я хочу получить их классы. Интересно, как я могу запросить классы в mongoose или mongoDB. Схема в мангусте выглядит следующим образом.

classSchema = Schema({ 
    className: String, 
    studentRefs: [{type: Schema.Types.ObjectId, ref: 'students'}] 
}); 
studentSchema = Schema({ 
    studentName: String 
}); 

Например,

Student A и B в Class1,
Student C и D в Class2,
Student E и F в Class3.
Теперь у меня есть пригород [A, B, C].

Я хочу получить классы учащихся в этом массиве.
Итак, ожидаемый результат: [Class1, Class2].

ответ

1

Вы можете использовать оператор $in с полями массива, например studentRefs. Таким образом, если studentIds содержит список идентификаторов студента, чтобы найти классы для:

Class.find({studentRefs: {$in: studentIds}}, function(err, classes) { ... }); 
+0

О, это работает! Большое спасибо! –

Смежные вопросы