如何使用golang

时间:2018-10-30 05:19:21

标签: mongodb go

在读取更新时,许多记录link。 mongodb shell查询用于更新数据库中的许多记录。然后我想在golang中实现以下给定的查询,以更新许多文档。我还检查了mgo文档。有一个可以更新许多文档的函数,但是它只需要两个参数,第一个是selector,另一个是update。但是在mongodb link中,我们必须在查询中传递三个参数。在集合中有20万条记录,而我仅更新了2000条记录。我想在golang中实现以下查询:

db.collection.update(
 <query>,
 <update>,
 {
   upsert: <boolean>,
   multi: <boolean>,
   writeConcern: <document>,
   collation: <document>,
   arrayFilters: [ <filterdocument1>, ... ]
  }
)

我这样使用它:

UpdateAll(config.BookingsCollection, nil, bson.M{"$set": bson.M{"is_price_field": 1}}).Limit(2000)

这会给我错误:

  

单值上下文中的多值UpdateAll()

当我删除Limit(2000)时,它不会显示任何错误,但不能满足我的结果。

已更新

基本上我遵循MVC结构

控制器:

func BulkUpdateBookings(c *gin.Context) {
 err := models.UpdateBulkBookingsDb()
 fmt.Println(err)
}

型号:

func UpdateBulkBookingsDb() (err error) {
  mongoSession := config.ConnectDb()// database connection
  defer mongoSession.Close()
  sessionCopy := mongoSession.Copy()
  defer sessionCopy.Close()
  getCollection := sessionCopy.DB(Database).C(collection)
   _, err = getCollection.UpdateAll(nil, bson.M{"$set": bson.M{"is_price_update": 0}})
  return err
}

0 个答案:

没有答案