【问题标题】:MongoDB - How to select data that has a field equals to the minimum field valueMongoDB - 如何选择字段等于最小字段值的数据
【发布时间】:2020-12-14 13:40:37
【问题描述】:

我是 MongoDB 新手,我想选择 所有用户 具有最低年龄。 像这样的:

db.users.find({age: {$min: age}})

看起来很基础,但我不知道怎么做。

【问题讨论】:

  • 您必须为此编写一个聚合查询。首先请参阅$min
  • @turivishal 假设我有 4 个年龄分别为 22、35、41、22 岁的用户。我想要 2 个年龄为 22 岁的用户。
  • 我理解的是一个非常简单的查询,您可以在其中获取age 字段大于数字的文档。检查this 是否符合您的期望。还要编辑您的问题并添加文档示例和预期输出。
  • @J.F.这不是我所期望的,抱歉我的问题不够清楚。 turivishal 的答案正是我想要的。

标签: mongodb mongodb-query


【解决方案1】:
  • $gorup by age 并制作 users 的数组
  • $sort by _id 表示age 按升序排列
  • $limit 1 个文档
db.users.aggregate([
  {
    $group: {
      _id: "$age",
      users: { $push: "$$ROOT" }
    }
  },
  { $sort: { _id: 1 } },
  { $limit: 1 }
])

Playground

【讨论】:

  • 工作得很好,谢谢!我什么都不懂,但我会调查?
猜你喜欢
  • 2012-11-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 2015-08-12
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多