我正在向Mongo运行一个大型数据源,我需要连接一个外部客户端并从最后一个可用记录中获取源 - 而不是当前的任何记录.我有一个可以正常工作的tailable游标,但它从表的开头开始,我想让它从最近插入的记录开始.我知道怎么做,假设我有最后插入记录的_ID.我的问题是我无法让findOne在Java中正常工作以恢复最后插入的记录.简而言之,我需要这个Mongo JS命令的Java等价物:
db.market.findOne( {$query:{}, $orderby:{$natural:-1}} )
Run Code Online (Sandbox Code Playgroud)
我发现这里有几个帖子看起来很相似,但他们假设客户端也是插入记录并且已经知道最后一个可用ID的人.
无论如何,正确的相应Java代码将完成同样的事情 - 即获取最后一个可用记录的_ID?
我想作为一种替代方案,我可以让我的客户端插入一次性记录,获取该ID,然后从那里开始,但我更愿意以正确的方式做到这一点.
谢谢
dav*_*veh 37
需要明确的是,自然顺序不是插入顺序,除非是上限集合.您将需要另一个标准来排序.
假设你使用的是默认对象ID,您可以为默认值与插入时间开始(到毫秒),并始终是唯一使用此作为插入的度量.
你也应该使用的发现,而不是findOne.请尝试以下方法:
db.market.find({}).sort({_id:-1}).limit(1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31083 次 |
| 最近记录: |