我正在向Mongo运行一个大型数据源,我需要有一个外部客户端连接到该数据源,并从上一个可用记录(而不是比当前记录更早的记录)中点击该数据源.我有一个可裁剪的光标,它工作得很好,但它从表的开头开始,我希望它从最近插入的记录开始.我知道怎么做,假设我有最后一条插入记录的_ID.我的问题是,我无法让findOne在Java中正常工作,以恢复最后插入的记录.简单地说,我需要这个Mongo JS命令的Java类似功能:

db.market.findOne( {$query:{}, $orderby:{$natural:-1}} )

我在这里发现了一些类似的帖子,但它们假设客户也是插入记录的人,并且已经知道最后一个可用的ID.

不管怎样,为了完成同样的任务,即获取最后一条可用记录的_ID,正确的Java代码应该是什么?

我想作为一种替代方案,我可以让我的客户插入一个一次性记录,获取该ID,然后从那里开始,但我更喜欢用正确的方式.

谢谢

推荐答案

需要明确的是,自然顺序不是插入顺序,除非是封顶集合.你需要另一个标准来排序.

假设您使用的是默认的ObjectID,您可以将其用作插入的度量,因为默认值从插入时间(毫秒)开始,并且始终是唯一的.

你也应该使用find,而不是findOne.try 以下方法:

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

Mongodb相关问答推荐

用Spring Boot查询MongoDB中的对象数组

MongoDB MQL,将列表一分为二,仅获取唯一值

MongoDB对两个串联数组进行排序

mongodb.将文档分组在数组中,对它们进行评分计数和求和并添加新字段

分页时根据唯一字段mongodb获取数据

在 MongoDB 中,如何使用对当前值进行操作的函数来更新嵌套文档的值?

MongoDB 到 Snowflake 连续加载

SELECT 字段 AS `anothername` 的 mongodb 等效项

MongoDB 2.1 聚合框架总和匹配名称的数组元素

我怎样才能更快地scrape

如何根据其他字段添加条件模式?

Django admin 和 MongoDB,可能吗?

MongoDB Java API:put() 与 append()

为什么我新创建的 mongodb 本地数据库增长到 24GB?

在安装的 MongoDB homebrew 中设置 dbpath (Mac OS)

我在更新中对 $set 和 $inc 做错了什么

如何使用 mgo 从 golang 中的 mongodb 集合中 Select 所有记录

我需要手动关闭mongoose连接吗?

与 mongoose/node.js 共享数据库连接参数的最佳方式

MongoMapper 和迁移