我想在查询某些值的集合后找到一些不同的值。
例如: 我的模特是学生的模特。每个文档中的字段都是名称,主题,标记。
现在我想为一位名叫马克的学生获得不同的科目。我在努力:
students.find({"name":"Mark"}).distinct("subject")
这给了我db.getCollection(...).find(...).distinct is not a function
我知道使用聚合管道可以实现同样的目的,但问题是为什么不能将这两者联系起来?
答案 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。