gpt4 book ai didi

java - 相当于 MongoCursor 快照的 MongoDB Java 驱动程序

转载 作者:可可西里 更新时间:2023-11-01 10:23:39 27 4
gpt4 key购买 nike

将我的 MongoDB Java 驱动程序从 2.14 版升级到 3.2 版后,我不再使用 DBCursor。至 MongoCursor .

以前,我使用 snapshot() 来防止在遍历包含数千个文档的大型数据库时出现重复。但是,我似乎找不到 MongoCursor 的等效方法。这会导致令人不安的重复,例如4493 个文档的 5571 个循环。这相当于多了 24% 的迭代!天哪!

所以,我的问题是,MongoCursor 是否有一种简单的方法或等效方法可以防止这种情况发生?如果不是,我应该切换回使用 DBCursor 吗?它看起来在 3.2 版本中仍然受支持。

请多多指教!谢谢!

最佳答案

通过检查分析器日志做了一些事情后,我实际上得到了确认:

MongoCursor<Document> cursor = collection.find().modifiers(
new Document("$snapshot", true)
).iterator();

所以你需要调用.modifiers()同时仍在 FindIterable$snapshottrue。这与 .snaphot() 一致。光标修饰符。

两者都像这样在分析器中记录:

   "query" : {
"find" : "sample",
"filter" : {

},
"snapshot" : true
},

显示正确放置的修饰符。

关于java - 相当于 MongoCursor 快照的 MongoDB Java 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36170740/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com