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

从mongoDB收藏中获取最新唱片

夏星阑
2023-03-14

我想知道收藏中最新的唱片。怎么做?

注意:我知道以下命令行查询工作:

1. db.test.find().sort({"idate":-1}).limit(1).forEach(printjson);
2. db.test.find().skip(db.test.count()-1).forEach(printjson)

在idate中添加了时间戳。

问题是收集时间更长,我的“测试”收集真的很大。我需要一个具有恒定时间响应的查询。

如果有更好的mongodb命令行查询,一定要告诉我。

共有3个答案

百里飞捷
2023-03-14

我需要一个有固定时间响应的查询

默认情况下,MongoDB中的索引是B树。搜索B树是一个O(logN)操作,所以即使是find({u id:…}) 不会提供固定时间的O(1)响应。

也就是说,如果您使用ObjectId作为您的ID,您也可以根据_id进行排序。有关详细信息,请参阅此处。当然,即使这样也只能持续到最后一秒。

您可以使用“写入两次”。一次写入主集合,然后再次写入“最后更新”的集合。没有事务,这不会是完美的,但是只有“最后更新”集合中的一项,它总是很快的。

卫子平
2023-03-14

这将为收藏提供最后一份文档

db.collectionName.findOne({}, {sort:{$natural:-1}})

$natural:-1表示插入记录的顺序相反。

编辑:对于所有的投票人,上面是Mongoose语法,mongo CLI语法是:db。collectionName。查找({})。排序({$natural:-1})。限制(1)

杜弘伟
2023-03-14

这是之前答案的重复,但它更有可能适用于不同的mongoDB版本。

db.collection.find().limit(1).sort({$natural:-1})
 类似资料:
  • 我有一个有说服力的事件模型,它与以下多个日期相关: 之后,我需要选择唯一的日期,最接近当前时间的日期。我知道如何使用原始SQL查询或DB类来实现这一点。但是没有更好的解决办法吗?我不想跳进数据库获取数据,我已经有了。 在雄辩的模型中,日期格式是令人惊讶的字符串。

  • X1.0新增 sp_get_favorite_key($table,$object_id) 功能: 用于生成收藏内容用的安全key,收藏时必用 参数: $table:收藏内容所在表,不带表前缀 $object_id:收藏内容的id 返回: 类型string,收藏内容用的安全key

  • 如何将最新文档插入(一个独立的、没有RS的)MongoDb,而不是现有的集合? 如何在文档之后插入所有文档?

  • 问题内容: 尝试创建一个简单的插件,该插件仅连接到ftp站点,查找最新文件,然后下载。但是,它没有获取最新文件。 我正在使用org.apache.commons.net.ftp.ftpclient进行所有操作。 这是我的代码 它获取文件列表,然后返回文件,它不是最新文件。还有其他方法可以使用FTPClient比较文件修改日期,或者有人可以向我指出我做错了什么。谢谢。 问题答案: 我将创建一个比较器

  • 问题内容: 我下面有日期数组 并想知道 最近的日期, 例如:最接近今天的日期。 我怎样才能做到这一点? 问题答案: 循环执行,将值转换为日期,然后将最新的值存储在var中。 诸如此类的东西…您就知道了如果您想获得今天之前的最新信息:

  • 如何使用_id检索在我的收藏中创建的最新文档? 我试图通过以下方式在我的Web应用程序中实现分页: 正在检索我页面加载的最后一个文档的_id 在下一页中检索大于最后一个文档_id的文档(http://tldrify.com/dcj) 我采用这种方法的原因是,我试图利用存储数据中的自然顺序——文档中存储的id。 获取下一组帖子的示例: 我的猫鼬模式: 据我所知,Mongo的文件已经按照以下文件从最旧