Mongoose:将distinct() 与find() 链接起来

Bhu*_*hal 0 mongoose mongodb

我想在查询集合中的某些值后找到一些不同的值。

例如:我的模型是学生的模型。每个文档中的字段是名称、主题、标记。

现在我想为一个名叫“Mark”的学生获取不同的科目。我正在尝试: students.find({"name":"Mark"}).distinct("subject") 这给了我一个错误db.getCollection(...).find(...).distinct is not a function

我知道可以通过使用聚合管道来实现相同的目的,但问题是为什么不能将这两者链接起来?

Raj*_*hra 9

正如 Mongoose API文档中提到的,您可以使用如下内容:

distinct(field, conditions)
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下它会是这样的:

students.distinct("subject", { "name": "Mark" })
Run Code Online (Sandbox Code Playgroud)

如果您尝试在mongo-shell. 你可以试试这个:

db.runCommand({
          distinct : "students",
          key : "subject",
          query : {"name":"Mark"}
})
Run Code Online (Sandbox Code Playgroud)

有关distinct命令可以参考 MongoDB文档