我正在使用 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(使用前将#替换为@)