Mongoose获取多个文档数组中的所有元素



我有一个具有属性的Schema Classroom:
_id
studentEmail(字符串数组。每个学生都有一个唯一的电子邮件(

我得到了一系列课堂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是一个mongoose ObjectId,但在示例中进行了简化。

您可以使用带有条件的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);
}
}
);

最新更新