在 MongoDB 中使用排序、限制,然后再次排序

2024-04-01

我正在使用 MongoDB 创建一个聊天应用程序。基本上我需要检索最新的 20 条聊天消息,然后按日期升序显示它们。为了获取最后 20 条聊天消息,我的代码如下所示:

db.messages.find().sort({$date:-1}).limit(20)

但这会使消息的顺序相反。

有没有办法在单个查询中做到这一点?我知道这是不正确的,但类似db.messages.find().sort({$date:-1}).limit(20).sort({$date:1}) ?


因为排序和限制命令实际上是对发送到 mongod 服务器的查询的修改,所以没有办法轻松地将两种排序附加到单个查询命令。你could使用聚合框架在 mongodb 中执行此操作,但这对于如此小的用例来说不是一个好的解决方案......

在这种情况下,最好的选择可能是在应用程序代码中反转结果。事实上,mongodb 的设计理念是客户端应该处理大多数此类数据操作。我不确定你使用的是什么语言,但大多数语言都有一种方法来反转数组或向后迭代列表——这在这里应该可以正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MongoDB 中使用排序、限制,然后再次排序 的相关文章

  • mongorestore 从独立到复制集

    我已转储在默认端口上运行的独立 mongo 数据库 14Gb 大 如下所示 mongodump username
  • 按偶数和奇数排序

    我想知道是否可以使用 std sort 函数按偶数或奇数对数字进行排序 我有以下代码 但我不确定如何在 std sort 中实现 inline bool isEven const Point n return n getX 2 0 它是否正
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • 自动过滤/排序列表框项目 (Windows Phone)

    我想确保添加到列表框中的项目根据每个项目的序列号按升序排序 例如 1 项目 2 项目 4 项目 3 项目应根据其编号自动排序 1 2 3 10 这是 C 源代码 namespace XeroQuiz public partial class
  • 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

    假设我有一列包含格式为 P 的对象标识符 例如 P12 3767 我使用的是 1 9 1 版本的 JQuery数据表插件 http datatables net用于排序和分页 有没有办法可以忽略单元格值的前 4 个字符 P12 部分 以便我
  • 修复数据库需要多少额外空间

    我已经问过了这个问题在 mongodb google group https groups google com d topic mongodb user oi6S LKfTrs discussion 在没有任何回复的情况下将其发布在这里
  • 在应用程序创建完成时设置 Spark DataGrid 列的默认排序(Flex 4.5)

    我有一个包含多个列的 Spark DataGrid 组件 我希望我的应用程序默认按 DataGrid 中第一列的降序排列 我想使用单击顶部标题一次时发生的内置默认排序 我不需要对我正在使用的 ArrayCollection 进行排序或更改比
  • 如何对 Data::Dumper 的输出进行排序?

    我想转储对象和散列的值 但它总是乱序打印键 如何按 递归 排序顺序转储键 use Data Dumper print Dumper obj Set Data Dumper Sortkeys 1获取 Perl 的默认排序顺序 如果要自定义顺序
  • 如何对STL向量进行排序?

    我想排序一个vector vector
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • C# Mongo DeleteMany - 不使用类

    我在 MongoDB 中有一个普通的 不是 GridFS 集合 我需要访问和删除一些文档 我想 需要在不使用类的情况下执行此操作 昨天 今天尝试了一些事情 并在网上进行了很多搜索并尝试了很多事情 无法弄清楚为什么 deletemany 对我
  • MongoDB:如果使用 $addToSet 或 $push,是否应该预先分配文档?

    我一直在研究 MongoDB 我知道强烈建议在插入时完全构建 预分配 文档结构 这样将来对该文档的更改不需要移动该文档磁盘周围 这在使用 addToSet 或 push 时适用吗 例如 假设我有以下文档 id rsMH4GxtduZZfxQ
  • 计算数组中的唯一元素而不排序

    在 JavaScript 中 以下代码将查找数组中的元素数量 假设数组中至少有一个元素 arr jam beef cream jam arr sort var count 1 var results for var i 0 i lt arr
  • 负整数的基数排序

    我正在尝试对整数 包括负整数 实现基数排序 对于非负整数 我计划为数字0 9创建一个10个队列的队列 并实现LSD算法 但我对负整数有点困惑 我现在的想法是继续为它们创建另一个包含 10 个队列的队列 并分别对它们进行排序 然后在最后 我将
  • Mongodb:语法错误:意外的标识符

    我是 mongodb 的新手 我正在使用 mongolab 创建免费数据库 我的数据库名称是 enron 使用在线 mongoshell 连接到 mongo 数据库然后发生错误 mongo ds033499 mongolab com 334
  • pymongo复制辅助读取引用不起作用

    我们有 MongoDB 2 6 和 2 副本集 并且我们使用pymongo驱动程序并使用以下 url 连接 Mongodb 副本集 mongodb admin email protected cdn cgi l email protecti
  • 通过 elemMatch 在 MongoDB 中排序

    MongoDB 有没有一种基于排序的方法 elemMatch 例如 我有如下所示的文档 user ObjectId fsdfsdf array of things attribute 1 ObjectId sdfsdfsd attribut
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g
  • MongoDB 聚合:如何检查数组中是否存在包含多个属性的对象

    我有一个对象数组 我想检查是否有一个对象与多个属性匹配 我尝试过使用 in and and但它并没有按照我想要的方式工作 这是我当前的实现 https mongoplayground net p dEQp2Q4DW0j 我有一个像这样的数组

随机推荐

  • 检查应用程序范围书签下的路径在沙盒应用程序内是否可写

    我有一个 OS X 应用程序 它存储应用程序范围的书签以持久访问某些目录 我可以毫无问题地写入这些目录 但我的代码中有一部分我想进行额外的检查以确认路径可写并且失败 var fileManager NSFileManager NSFileM
  • AVFoundation 将 Alpha 通道视频叠加在另一个视频上?

    我尝试过将图像覆盖在视频资源上 并且还认为应该有某种方法可以将 Alpha 通道视频覆盖在另一个视频上 有没有办法将 Alpha 通道视频叠加在另一个视频资源上 None
  • 奇怪的 Java HashMap 行为 - 找不到匹配的对象

    当我试图在里面寻找钥匙时 我遇到了一些奇怪的行为java util HashMap 我想我错过了一些东西 代码段基本上是 HashMap
  • 膨胀类 ImageButton 时出错

    我有一个应用程序 其中有fragment and image button关于这一点 问题是它正在上面工作5 0但不低于5 0 最小sdk版本是17 不明白这里出了什么问题 我遇到了 2 个例外 One is RuntimeExceptio
  • Checkstyle Eclipse 插件不起作用

    我正在使用 Juno Eclipse 发行版的 eclipse checkstyle 插件 每当检查代码是否有 checkstyle 错误时 我都会收到以下错误 cannot initialize module TreeWalker Una
  • 使用 Scala 进行依赖注入

    我正在寻找一种在 Scala 中进行依赖注入的方法 类似于 C 中的 Spring 或 Unity 但我没有发现任何真正有趣的东西 MacWire 我不明白这样做有什么好处 因为我们必须在wire CASS 中上课 那么如果你在调用wire
  • nginx conf 文件是什么语言?

    我想在我的 Nginx 配置文件中编写一些更复杂的条件 但我不确定语法 也找不到描述示例中基础知识之外可以做什么的文档 而且我似乎无法在Nginx 论坛或邮件列表 例如 我是否可以拥有一个unless健康 状况 所以我是 nginx 的新手
  • 如何以编程方式运行 NUnit

    我有一些引用 NUnit 的程序集并使用单个测试方法创建单个测试类 我能够获取该程序集的文件系统路径 例如 C test dll 我想以编程方式使用 NUnit 来针对该程序集运行 到目前为止我有 var runner new Simple
  • 我无法打开可变文件名

    有什么理由吗Dev C 不让我做file open file name variable 我不明白为什么它不允许我打开任何东西 除了像这样的硬编码名称file open abc txt 如何解决这个问题 不使用 Dev C 这基本上是我所拥
  • DecimalFormat 的奇数结果四舍五入

    提供一个浮点值37 35我得到一串37 3 这是我的代码 DecimalFormat format new DecimalFormat 0 format setRoundingMode RoundingMode HALF UP return
  • C# 剪贴板直接复制粘贴

    Hi 我想直接复制 粘贴 例如我只需单击一下按钮即可将粘贴到剪贴板 为此您可以编写示例代码 如果您想从文本框 在此示例中为 textBox1 复制 则需要以下内容 Clipboard SetText textBox1 Text To cop
  • 无法移出 ViewPort 窗格 - Selenium

    我正在尝试使网页自动化 http the internet herokuapp com exit intent http the internet herokuapp com exit intent 如果我们从视图窗格移向页面顶部 则会出现
  • 防止一个元素覆盖另一个元素[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个固定的标题 当我滚动时 某些
  • 如何在.net中检索硬盘固件序列号?

    如何在 net 中检索硬盘固件序列号 我能够使用 WMI 调用检索 HDD 序列号 但无法找到任何方法来检索 HDD 固件序列号 提前感谢 使用 WMI 简单来说 这是一个低级函数 没有 理智的 更高级别的 API 会支持 读取或写入文件是
  • 什么是 F# 引号?

    F 中的 引号 是什么 它们的用途是什么 See http msdn microsoft com en us library dd233212 aspx http msdn microsoft com en us library dd233
  • Rails 5.2.0 与 Ruby 2.5.1 控制台 - `警告:``已经`初始化常量 FileUtils::VERSION

    我目前在新的 Rails 应用程序中遇到问题 更具体地说 轨道 5 2 0 Ruby 2 5 1p57 2018 03 29 修订版 63029 x86 64 darwin17 rvm 1 29 4 最新 作者 Michal Papis P
  • 将日期字符串解析为 java.util.Date 时出现非法模式字符“T”

    我有一个日期字符串 我想使用 java Date API 将其解析为正常日期 以下是我的代码 public static void main String args String date 2010 10 02T12 23 23Z Stri
  • 在 Mongoose 中间件方法之间共享数据 pre save 和 post save

    请参阅底部更新的示例代码 我在当前的 NodeJS 项目中使用 Mongoose 顺便说一句 这非常棒 并且我有一个 MDB 集合 它将在不同的集合中存储文档的更改 基本上是一个变更日志存储修改的内容 我试图实现的方法是创建一个存储文档的
  • 如何在C++中使用类对象作为函数参数

    我不确定如何拥有一个接收类对象作为参数的函数 有什么帮助吗 下面是一个例子 include
  • 在 MongoDB 中使用排序、限制,然后再次排序

    我正在使用 MongoDB 创建一个聊天应用程序 基本上我需要检索最新的 20 条聊天消息 然后按日期升序显示它们 为了获取最后 20 条聊天消息 我的代码如下所示 db messages find sort date 1 limit 20