我有一个具有属性的架构教室:
_id
studentEmails(字符串数组。每个学生都有一个唯一的电子邮件)
我得到了一组教室ID,我想找到属于这些教室之一的每封学生电子邮件,无重复。我该怎么做呢?我当时以为我可以收到每个学生的电子邮件,然后在以后删除重复的邮件,但是我宁愿通过猫鼬来做。
例如,如果我有以下教室:
_id: 1
studentEmails: ["a@school.edu", "b@school.edu"]
_id: 2
studentEmails: ["b@school.edu", "d@school.edu"]
以及以下查询参数:
[1, 2]
我想获得[a@school.edu,b@school.edu,d@school.edu]。 _id是猫鼬的ObjectId,但在示例中进行了简化。
答案 0 :(得分:1)
您可以使用带有条件的distinct
方法。
Model.distinct(
"studentEmails",
{ _id: { $in: [mongoose.Types.ObjectId("1"), mongoose.Types.ObjectId("2")] } },
function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
}
);