在两个不同的请求周期中访问MongoDB游标
我目前正在寻找一种解决方案来保存mongodb游标(在find()之后)以在两个http请求之间访问它。我的环境是JAVA Spring MVC和mongodb(Spring Data),所以我拥有它所有的强大功能。不幸的是,我没有找到任何解决我的问题的文档/教程:在两个不同的请求周期中访问MongoDB游标
客户端在第一个请求中请求前20个结果,在他的第二个请求中请求20个结果。而不是再次查询mongo,我想访问以前生成的光标,因为文档在时间内发生了更改,我想要它们的初始顺序。有没有办法如何做到这一点?
帮助非常欢迎!
回答:
您也可以尝试遍历Cursor
并将所有内容添加到SortedMap
。然后,您可以根据需要多次查询SortedMap
。您可以按照自然顺序对SortedMap
进行分类,也可以使用Comparator
按照您想要的方式对其进行分类。
回答:
某些驱动程序支持游标上的懒惰操作,称为getMore
。这将重用您的光标ID来检索更多数据。
除非严格要求,否则光标不会执行快照,导致插入或删除新文档时出现奇怪的行为(如同样的文档两次)。要快照你的结果,尝试添加.snapshot()
您的查询,如:
var cursor = db.myCollection.find({country:'uk'}).snapshot();
我从来没有测试过,所以请确认是否这种方法wathever工作与否。
以上是 在两个不同的请求周期中访问MongoDB游标 的全部内容, 来源链接: utcz.com/qa/266491.html