doulu8537 2019-01-18 12:08
浏览 420

如何使用Mongodb在Golang中使用批量更新获取更新的文档ID

I am working on a golang project. I am using MongoDB database. I need to get the all documents ids with the bulk update function. I am using mgo golang package with the code below:

package main

import (
   "fmt"
   "gopkg.in/mgo.v2/bson"
   "gopkg.in/mgo.v2"
)
type QueryStruct struct{
   Selector    bson.M
   Query       bson.M   
}

func main(){
   session, err := mgo.Dial("127.0.0.1")
   if err != nil {
      panic(err)
   }

   defer session.Close()

   session.SetMode(mgo.Monotonic, true)
   var queries []QueryStruct
   for i:=1; i<=400; i++{
      var query QueryStruct
      query.Selector = bson.M{"country":"US"}
      query.Query = bson.M{"$set":bson.M{"serial_number":i}}
      queries = append(queries, query)
   }
   c := session.DB("test").C("people")
   bulk := c.Bulk()
   for _, queryVal := range queries{
       bulk.UpdateAll(queryVal.Selector, queryVal.Query)
   }
   data, err := bulk.Run()
   fmt.Println(data)
   fmt.Println(err)
}

I am getting the output like this:

&{117 117 false}
<nil>

I need to get the updated document ids to maintain the logs if any entry is not updated.

Can anybody suggest me how I can achieve this?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
    • ¥20 matlab yalmip kkt 双层优化问题
    • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
    • ¥88 实在没有想法,需要个思路