【发布时间】:2020-05-26 12:27:12
【问题描述】:
我想写一个查询来从 mongodb 中获取数据,我有 3 个集合 --books、teachers、students.Book 集合有 bookName 和_id,teachers 集合有 --_id、teacherName 和teacherId,学生集合有_id 、学生姓名、教师编号……我有 studentName 作为 S1,teacherName 作为 T1,我怎样才能从学生集合中获取名称为 S1 的学生记录,其中的 teacherId 作为名称 T1(来自教师集合)...eg. select _id from student where studentName =S1 and teacherId=(select techerID from techer where teacherName = T1)… how can I write this query in node using agregation
books.aggregate([
{
'$match': {
'name': 'book1' }
}, {
'$lookup': {
{ from :students,
'$match': {
'name': 'Annie' }
},
'from': 'teachers', // collection name of the teachers
'localField': 'teacherId',
'foreignField': '_id',
'as': 'teachers'
}
}, {
'$match': {
'teachers': {
'$elemMatch': {
'teacherName': 'Jones'
}
}
}
}
])`
【问题讨论】: