猫鼬在多个文档的数组中获取所有元素

时间:2020-10-22 23:08:08

标签: mongoose

我有一个具有属性的架构教室:
_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,但在示例中进行了简化。

1 个答案:

答案 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);
    }
  }
);