0

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

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

非常欢迎帮助!

4

2 回答 2

1

一些驱动程序支持对称为getMore. 这将重用您的游标 ID 来检索更多数据。

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

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

我从来没有测试过,所以请确认这种方法是否有效。

于 2012-08-29T14:38:10.260 回答
0

您还可以尝试遍历Cursor并将所有内容添加到SortedMap. 然后,您可以SortedMap根据需要多次查询。您可以SortedMap按自然顺序对其进行排序,也可以使用 aComparator以任何您想要的方式对其进行排序。

于 2012-08-29T14:45:14.137 回答