При чтении обновления много записей ссылка . Существует запрос оболочки mongodb, который используется для обновления многих записей в БД. Затем я хочу реализовать ниже данный запрос в Голанге для обновления многих документов. Я также проверяю документ mgo . Существует функция, которая обновляет много документов, но сначала потребуется только два параметра - selector
, а другой - update
. Но в mongodb link есть три параметра, которые мы должны передать в запросе. В коллекции 200 тыс. Записей, и я обновляю только 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 () с несколькими значениями в контексте с одним значением
Когда я уберу Лимит (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
}