【问题标题】:Mongoose get all elements in array of multiple documentsMongoose 获取多个文档数组中的所有元素
【发布时间】:2020-10-23 10:49:27
【问题描述】:

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

给了我一组教室 ID,我想找到属于其中一个教室的每个学生电子邮件,没有重复。我该怎么做呢?我想我可以获取每个学生的电子邮件,然后再删除重复的邮件,但我更愿意通过 mongoose 来完成。

例如,如果我有以下教室:

_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,但在示例中进行了简化。

【问题讨论】:

  • 你可以使用,这里是示例 p.find() .where("studentEmails") .in([1, 2])

标签: mongoose


【解决方案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);
    }
  }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2021-06-26
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2017-06-05
    相关资源
    最近更新 更多