如何返回 MongoDB 中最新日期的元素

2024-04-26

在 MongoDB 上,如何从此列表中选择具有最新日期的元素:

[{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d55"),
"Date" : "12-09-2018",
"Type" : "A",
"Value" : 73650.14
},
{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d15"),
"Date" : "12-09-2018",
"Type" : "B",
"Value" : 73650.14
},
{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d58"),
"Date" : "13-09-2018",
"Type" : "A",
"Value" : 80000
},
{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d56"),
"Date" : "13-09-2018",
"Type" : "B",
"Value" : 800000
}]

为了获得此列表:

[{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d58"),
"Date" : "13-09-2018",
"Type" : "A",
"Value" : 80000
},
{
"_id" : ObjectId("5c5064f39d0c4b52cf6d1d56"),
"Date" : "13-09-2018",
"Type" : "B",
"Value" : 800000
}]

这可能很容易,但尽管进行了很多研究,我还是无法做到。我尝试使用 $group 运算符来实现,但我从未找到如何推送所需的值(我只获得日期或没有任何过滤器的所有元素)。

我是 Mongodb 的新手,非常感谢您的帮助。

Thanks


以下 MongoDB 3.6 查询向每个文档添加一个新的日期字段,按该字段分组并将该组中的文档推送到数组中,按 _id(日期)降序排序,限制为第一个文档(最近的日期) ,展开文档数组,然后通过替换每个文档的根并投影原始字段来清理结果。

db.colx.aggregate([{
  $addFields: {
    ISODate: {
      $dateFromString: {
        dateString: "$Date"
      }
    }
  }
}, {
  $group: {
    _id: "$ISODate", 
    items: {
      $push: "$$ROOT"
    }
  }
}, {
  $sort: {
    _id: -1
  }
}, {
  $limit: 1
}, {
  $unwind: "$items"
}, {
  $replaceRoot: {
    newRoot: "$items"
  }
}, {
  $project: {
    _id: 1, 
    Date: 1, 
    Type: 1, 
    Value: 1
  }
}])

Output:

{ "_id" : ObjectId("5c5064f39d0c4b52cf6d1d58"), "Date" : "13-09-2018", "Type" : "A", "Value" : 80000 }
{ "_id" : ObjectId("5c5064f39d0c4b52cf6d1d56"), "Date" : "13-09-2018", "Type" : "B", "Value" : 800000 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何返回 MongoDB 中最新日期的元素 的相关文章

随机推荐

  • 将图像导入 Android Studio,显示为深灰色

    我正在尝试将图像导入 Android Studio 然后将其用作我的应用程序的背景 我右键单击 res 文件夹并导入资源 接下来我选择操作栏和选项卡图标 在这里我在我的电脑上找到图像文件 然后将其导入到我的项目中 当它导入时 所有预览都是深
  • 使用curl模拟github服务钩子

    我有一个服务监听 github 服务挂钩 以执行自动部署 有时我需要手动触发 无需 github 干预 为此 我正在模拟 github 发送的 POST 请求 post receive URLs 我的数据 my json 看起来像这样 gi
  • Android AsyncTask:跳过 X 帧 - 主线程内工作过多

    我正在为一些网站制作一些RSS阅读器 所以我想在4 0的较低版本的Androd上实现actionbar和viewpager 所以我使用Jake Wharton的ActionBarSherlock和ViewPagerIndicator 所以我
  • 打包应用程序时,WinRT 和 UWP WebView 本地主机 url 不会触发

    男孩 我真的很挣扎这个 因此 我有一个 WinRT Metro 应用程序 该应用程序的 Web 视图中嵌入了一个 HTML 网页 在 HTML 页面中 有一个 div 带有指向 localhost url 的 href 我使用此 local
  • 跟踪 Maven 中的托管依赖项版本

    假设我有一个复杂的项目 有很多依赖项 依赖项的版本由大量导入范围 pom 管理 我的项目依赖于工件group artifact 它依赖于工件group transitive dependency 当我跑步时dependency tree我看
  • 构造对象并调用成员函数

    这是我的代码 include
  • 如何在 jQuery 移动按钮中使用很棒的字体图标

    我正在尝试使用带有 font Awesome 按钮的 jquery mobile 为此 我遵循了此中描述的答案post https stackoverflow com questions 18809890 how where to inst
  • 在android中加载swf文件时出现问题

    当我在 Android 模拟器中加载交互式 SWF 文件时遇到问题 我使用2 3 1 AVD 这是代码 package com androidpeople view import android app Activity import an
  • '+=' 的含义

    我对 C 的语法感到困惑 有什么用 The 语法可以以不同的方式使用 SomeEvent EventHandler 向事件添加处理程序 SomeVariable 3 相当于 SomeVariable SomeVariable 3
  • Process.Start("explorer.exe");不会带回任务栏

    截至目前 我正在通过 WinForms 开发一个模拟操作系统 以用作电影的道具 运行该应用程序时 它会杀死 explorer exe 这样您就不会在拍摄过程中意外地显示 Windows 任务栏 问题是 关闭模拟操作系统后 我希望 explo
  • 使用我自己的训练示例训练 spaCy 现有的 POS 标记器

    我正在尝试在我自己的词典上训练现有的词性标注器 而不是从头开始 我不想创建一个 空模型 在spaCy的文档中 它说 加载您想要统计的模型 下一步是 使用add label方法将标签映射添加到标记器 但是 当我尝试加载英文小模型并添加标签图时
  • Pandas 获取加载到内存中的所有数据帧的列表

    我正在使用 pandas 将多个 csv 文件读取到内存中进行处理 并且在某些时候想列出我已加载到内存中的所有数据帧 有没有一种简单的方法可以做到这一点 我正在考虑类似 ls 的东西 但仅适用于内存中可用的数据帧 我个人认为this htt
  • 使用一组过滤器在给定区域中最新的 AMI ID

    我正在尝试运行下面的代码 但是在执行时出现错误 您能否建议我进行更改 最新的 ami https github com bwood latest ami blob master latest ami py ec2 user ip XXXXX
  • 尝试通过 ts-patch 在 Angular 项目中使用 ts-nameof

    我正在使用 Angular 8 2 并安装ts nameof https github com dsherret ts nameof ts nameof4 2 2 对于我的项目和ts patch https github com nonar
  • 我如何使用 PyObjects 声明 Boost.Python C++ 类

    我想用 PyObjects 编写一个 C 类 以便从 Python 访问它们 并使用现有的 Python 对象实例引用它们 简而言之 我想在 C 类中存储 管理 Python 对象实例 例如 struct Var PyObject Test
  • 使用 Cerberus 进行依赖项验证

    我正在验证 CSV 文件Cerberus http docs python cerberus org en stable index html但我正在努力解决我认为的一些基本逻辑 设想 CSV 文件有 2 列 Column 2仅当以下情况时
  • 按“字符串”名称对 LINQ 进行排序

    问题解决了 解决方案是 Linq Dynamic 你这样做 from c in Context AccountCharts where c Account FK account c Year FK year select c OrderBy
  • 来自 Phonegap Android 的 AJAX 请求失败

    过去两天我一直在研究这个问题 并查看了很多其他建议 是的 我可以让这个简单的ajax请求在phonegap应用程序中工作 无论是在android模拟器上还是在实际的android手机上 我的phonegap版本是 使用phonegap v
  • 将网站水平和垂直居中

    view on http www eveo org http www eveo org方便修改的下载地址 http www eveo org backup eveo rar http www eveo org backup eveo rar
  • 如何返回 MongoDB 中最新日期的元素

    在 MongoDB 上 如何从此列表中选择具有最新日期的元素 id ObjectId 5c5064f39d0c4b52cf6d1d55 Date 12 09 2018 Type A Value 73650 14 id ObjectId 5c