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

问题描述 投票:0回答:1

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

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

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

我知道使用聚合管道可以实现同样的目的,但问题是为什么这两个不能链接?

mongodb mongoose
1个回答
2
投票

正如Mongoose API docuemtation中提到的,你可以使用这样的东西:

distinct(field, conditions)

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

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

如果你想在mongo-shell做同样的事情。你可以试试这个:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.