登录
首页 >  Golang >  Go问答

计算 MongoDB 查询结果中文档字段的总和

来源:stackoverflow

时间:2024-03-14 09:09:20 184浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《计算 MongoDB 查询结果中文档字段的总和》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我想执行一个 mongodb 查询来获取文档,直到这些文档的字段总和超过某个值。例如,如果我有以下文件

{id: 1, qty: 40}
{id: 2, qty: 50}
{id: 3, qty: 30}

我的设定数量为 80,我想检索 id1 和 id2,因为 40+50 是 90,现在已经超过 80。如果我想要的数量为 90,我也会检索 id1 和 id2。有谁知道如何以这种方式查询? (顺便说一句,我正在使用 go - 但任何一般的 mongo 查询建议都会有很大帮助)


解决方案


由于您要保留某个字段的运行总和,因此最简单的方法是运行 find 操作,获取游标,并在自己保留总和的同时迭代游标,直到达到所需的总数。然后,关闭光标并返回:

cursor, err:=coll.Find(context.Background(),query)
sum:=0
defer cursor.Close(context.Background())
for cursor.Next(context.Background()) {
   cursor.Decode(&data)
   sum+=data.Qty
   if sum>=80 {
      break
   }
}

本篇关于《计算 MongoDB 查询结果中文档字段的总和》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>