Как получить обновленные идентификаторы документов с массовым обновлением в golang с Mongodb - PullRequest
0 голосов
/ 18 января 2019

Я работаю над проектом Голанга. Я использую базу данных MongoDB. Мне нужно получить все документы с помощью функции массового обновления. Я использую пакет mgo golang с кодом ниже:

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)
}

Я получаю вывод, как это:

&{117 117 false}
<nil>

Мне нужно получить обновленные идентификаторы документов для ведения журналов, если какая-либо запись не обновляется.

Кто-нибудь может подсказать, как мне этого добиться?

...