【问题标题】:Mongoose: Chaining distinct() with find()Mongoose:将 distinct() 与 find() 链接起来
【发布时间】:2017-12-21 09:25:18
【问题描述】:

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

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

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

我知道使用聚合管道也可以达到同样的效果,但问题是为什么不能将这两个链接起来?

【问题讨论】:

  • 如果以下答案对您有用。请注意接受它。

标签: mongodb mongoose


【解决方案1】:

正如 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多