当前位置: 首页 > 面试题库 >

从MongoDB find()结果集中识别最后一个文档

壤驷泓
2023-03-14
问题内容

我正在尝试使用websocket将数据从node.js / MongoDB实例“流式传输”到客户端。一切都很好。

但是,如何确定结果中的最后一个文档?我正在使用node-mongodb-native从node.js连接到MongoDB。

一个简化的例子:

collection.find({}, {}, function(err, cursor) {
  if (err) sys.puts(err.message);

  cursor.each(function(err, doc) {
    client.send(doc);
  });                
});

问题答案:

由于mongodb objectId包含创建日期,因此您可以按ID,降序排序,然后使用limit(1):

db.collection.find().sort( { _id : -1 } ).limit(1);

注意:我一点都不熟悉node.js,以上命令是mongo shell命令,我想您可以轻松地将其重写为node.js。



 类似资料:
  • 问题内容: 我在存储过程中的MS- SQL中有一个结果集,可以说它有一个VARCHAR列,但有很多行。我想创建一个包含所有这些值的逗号分隔的字符串,是否有一种简单的方法来执行此操作,还是我必须逐步检查每个结果并手动构建字符串? 最好是我想在存储过程本身中执行此操作。 问题答案: 这是一种方法(使用AdventureWorks2008 DB): 这是另一个(从SQL 2005开始): 在这两种情况下

  • 问题内容: 所以我有一个弹性的搜索索引,并且要向它发送带有时间戳的文档。我想知道是否有一种方法可以根据时间戳提取最后一个文档。即说要弹性给我最后一次的文档。 谢谢。 问题答案: 是的,您只需索取一个文档()并通过减少时间戳进行排序

  • 我尝试离线使用Android的语音识别API,就像这个问题一样,Android离线语音识别只显示一个结果?。我在线时也会得到五个结果,离线时只会得到一个结果,我希望在任何一种情况下都能得到五个(ish)结果。这仅仅是Android内置语音识别引擎的一个限制,还是有一些隐藏的设置可以更改以强制生成多个结果? 这是我的意图设置: 和我的onResults(): 我正在运行Android 4.4.2。

  • 问题内容: 当我从命令行调用存储的proc时,我得到以下信息。 这是我的Java代码的片段 当我执行该语句时,仅返回event_table结果。我阅读以下查询: 我试图避免对数据库发出多个请求,因为它非常慢(300毫秒,具体取决于多少结果) 可能吗? 问题答案: 我找到了这篇很棒的文章。http://www.herongyang.com/JDBC/MySQL-CallableStatement-M

  • 问题内容: 我正在尝试从MYSQL下载图像(.png)文件。有时它工作正常。无法找到确切的问题。它可以在Jboss服务器上正常工作。尝试在Apche上的本地计算机中运行时引发错误。 请帮助我修复错误。这是我的Java代码。 这是堆栈跟踪输出: 问题答案: 您打了两次电话。我假设您的查询仅返回1行,因为您尝试通过进行匹配。当第二个被调用时,中没有要返回的行。这就是抛出an的原因。像这样删除第一个: