为了账号安全,请及时绑定邮箱和手机立即绑定

使用golang从MongoDB批量获取记录

使用golang从MongoDB批量获取记录

Go
慕容708150 2023-06-01 14:16:09
如何使用 golang 从 mongo 数据库中批量获取记录?我知道 mongoDB 本身有一个叫做 cursor.batchSize() 的东西,但我试图找到一个使用 golang 驱动程序的例子。据我所知,golang 库 mgo 有一个名为 Batch 的函数,但我想弄清楚如何使用它。理想情况下,我正在寻找这样的东西:const cursor = useDb.collection(mycollection).find().batchSize(10000);for (let doc = await cursor.next(); doc != null; doc = await cursor.next()) {    if (doc._id % divisor === 0) {        counter++;    }}到目前为止我有这样的事情:err := c.Find(nil).Batch(1).All(&items)但它没有像预期的那样工作。链接: https://docs.mongodb.com/manual/reference/method/cursor.batchSize/ https://godoc.org/github.com/globalsign/mgo#Query.Batch
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

指定batchSize()每批响应中要返回的文档数。你仍然会得到所有的结果。例如,如果返回的文档总数为 100,而您将批量大小指定为 20,则您将有 1find和 4 个getMore命令从客户端发送到mongod完成请求。

您可以使用一个小技巧来验证。使用db.setProfilingLevel(0, 0)mongo shell 将所有内容记录在日志文件中。执行您的测试应用程序,您将看到findgetMore记录在日志中。


查看完整回答
反对 回复 2023-06-01
  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信