我目前正在寻找一种解决方案来保存 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/