猫鼬:用find()链接distinct()

时间:2017-12-21 09:25:19

标签: mongodb mongoose

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

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

现在我想为一位名叫马克的学生获得不同的科目。我在努力: students.find({"name":"Mark"}).distinct("subject") 这给了我db.getCollection(...).find(...).distinct is not a function

的错误

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

1 个答案:

答案 0 :(得分:2)

如Mongoose API documentation中所述,您可以使用以下内容:

distinct(field, conditions)

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

students.distinct("subject", { "name": "Mark" })

如果您尝试在mongo-shell中执行相同操作。你可以试试这个:

db.runCommand({
          distinct : "students",
          key : "subject",
          query : {"name":"Mark"}
})

对于distinct命令,您可以参考MongoDB documentation