当前位置: 首页 > 知识库问答 >
问题:

获取字段中具有最小或最大值的文档MongoDB

黄伟
2023-03-14

如何在MongoDB中获得字段中具有最小值或最大值的文档?

与MySQL中的MIN()或MAX()函数类似,但使用NodeJS MongoDB驱动程序。有什么想法吗?

共有1个答案

蔡楚
2023-03-14

您可以尝试使用asc,desc sort with limit(1)

db.col.insert({val: 9});
db.col.insert({val: 4});
db.col.insert({val: 20});
db.col.find();
{ "_id" : ObjectId("511bf79298bb011e3a33747d"), "val" : 9 }
{ "_id" : ObjectId("511bf79698bb011e3a33747e"), "val" : 4 }
{ "_id" : ObjectId("511bf79d98bb011e3a33747f"), "val" : 20 }
db.col.find().sort({val: 1}).limit(1); //min
{ "_id" : ObjectId("511bf79698bb011e3a33747e"), "val" : 4 }
db.col.find().sort({val: -1}).limit(1); //max
{ "_id" : ObjectId("511bf79d98bb011e3a33747f"), "val" : 20 }
 类似资料:
  • 问题内容: 桌子: 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有一种方法可以简单地在SQL中做到这一点?(最好是Oracle) 更新: 对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个UserId,仅该用户具有最新日期的那一行。 问题答案: 这将检索其my_date列值等于该用户ID的my_date最大值的所有行

  • 问题内容: 我有一个:键是字符串,值是整数。 例: 我想作为一个答案,因为它是具有更高价值的关键。 我使用带有反向键值元组的中间列表进行了以下操作: 那是一种更好(或更优雅)的方法吗? 问题答案: 您可以使用: 而不是在内存使用中构建新列表。该函数的参数是一个计算键的函数,该键用于确定如何对项目进行排名。 请注意,如果要使用另一个键值对,则此方法将仅返回两个值中的一个,即使它们都具有最大值。 如果

  • 我对MongoDB和聚合有最基本的了解。我还没有找到一个明确的例子来说明如何比较多个符合标准的文档并返回1个具有特定属性中最大值的文档。 假设我们收集了以下文档: 如何按名称进行筛选(),然后返回具有最高值的文档?

  • 问题内容: 我在搜索时遇到问题,只是不知道该怎么做。我的文档具有以下形式: 假设会话ID的第一个时间戳是“登录”,最后一个时间戳是“注销”。我希望所有会话都具有所有“登录”和“注销”文档(如果可能,请按排序)。我设法通过聚合获得正确的时间戳: 但是我如何获得相应的文档?我也不介意我是否必须进行2次搜索(一次用于登录,一次用于注销)。我尝试了热门热门文章的汇总和排序工作,但是我总是会遇到解析错误:/

  • 问题内容: 我正在处理一个Postgres表(称为“lives”),该表包含带有,和列的记录。我需要一个查询,该查询将为我提供每个usr_id的最新live_remaining总数 有多个用户(与usr_id不同) time_stamp不是唯一的标识符:有时,用户事件(表中的每一行)将使用相同的time_stamp发生。 trans_id仅在很小的时间范围内是唯一的:随着时间的流逝,它会重复 (对

  • 问题内容: 我尝试在执行以下命令后获得具有最高/最低编号的行: 这是我的测试数据 为了获得最低的价值,我将使用 现在,id是,但应该是。 我也尝试了加入: 如何根据最低的结果为每个结果获取正确的ID ? 问题答案: 我认为这是您要实现的目标: 输出: ID 价值 姓名 1个 10 第1行 4 5 第2行 在这里,我使用minVal和Name自联接了表。