java - 在两个不同的请求周期中访问MongoDB Cursor

标签 java spring mongodb spring-mvc spring-data

我目前正在寻找一种解决方案来保存 mongodb 游标(在 find() 之后)以便在两个 http 请求之间访问它。我的环境是JAVA Spring MVC和mongodb(Spring Data),所以我拥有它所有强大的功能。不幸的是,我没有找到任何解决我的问题的文档/教程:

客户端在其第一个请求中请求前 20 个结果,在第二个请求中请求后 20 个结果。我不想再次查询 mongo,而是想访问之前生成的游标,因为文档在一段时间内发生了变化,并且我希望获得它们的初始顺序。有什么办法可以做到吗?

非常欢迎帮助!

最佳答案

某些驱动程序支持名为 getMore 的游标惰性操作。这将重用您的光标 ID 来检索更多数据。

除非您严格要求,否则您的光标不会执行快照,从而在插入或删除新文档时导致奇怪的行为(例如两次查看同一个文档)。要快照结果,请尝试将 .snapshot() 添加到您的查询中,例如:

varcursor = db.myCollection.find({country:'uk'}).snapshot();

我从未对此进行过测试,因此请确认此方法是否有效。

关于java - 在两个不同的请求周期中访问MongoDB Cursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12180247/

相关文章:

java - CORBA 的 Spring 批处理机制

java - 自制端口扫描仪无法与 JavaFX 一起使用

java - 如何在Java Spring boot中模拟RestTemplate?

java - Android 应用程序中的 Google 登录

java - Spring 和 Web 服务

javascript - MongoDB:$push 到基于变量内容的数组

java - 显示居中对齐的 Web View

java - 仅将异常处理绑定(bind)到 @ControllerAdvice 类

node.js - 了解 Azure Function 中的 Mongoose 连接

mongodb - MongoReplicaSetClient 不会在 celery 工作人员中重新连接