Menu Docs

Página inicial do DocsDesenvolver aplicaçõesMongoDB DriversDriver GO

Realizar operações em massa

Você pode realizar operações de escrita em massa em uma collection usando o método BulkWrite().

Dica

Leia os Exemplos de uso para saber como executar esse exemplo.

Este exemplo utiliza a seguinte estrutura Restaurant como um modelo para documentos na collection restaurants:

type Restaurant struct {
Name string
RestaurantId string `bson:"restaurant_id,omitempty"`
Cuisine string `bson:"cuisine,omitempty"`
Address interface{} `bson:"address,omitempty"`
Borough string `bson:"borough,omitempty"`
Grades []interface{} `bson:"grades,omitempty"`
}

A tag struct omitempty omite o campo correspondente do documento inserido quando deixado vazio.

O exemplo a seguir executa o seguinte em ordem na collection restaurants:

  • Corresponde a um documento no qual name é "Cafe Tomato" e o substitui por um novo documento

  • Corresponde a um documento no qual name é "Cafe Zucchini" e atualiza o valor para "Zucchini Land"

coll := client.Database("sample_restaurants").Collection("restaurants")
// Creates write models that specify replace and update operations
models := []mongo.WriteModel{
mongo.NewReplaceOneModel().SetFilter(bson.D{{"name", "Cafe Tomato"}}).
SetReplacement(Restaurant{Name: "Cafe Zucchini", Cuisine: "French"}),
mongo.NewUpdateOneModel().SetFilter(bson.D{{"name", "Cafe Zucchini"}}).
SetUpdate(bson.D{{"$set", bson.D{{"name", "Zucchini Land"}}}}),
}
// Specifies that the bulk write is ordered
opts := options.BulkWrite().SetOrdered(true)
// Runs a bulk write operation for the specified write operations
results, err := coll.BulkWrite(context.TODO(), models, opts)

Veja um exemplo totalmente executável

Após executar o exemplo completo, você pode encontrar o seguinte documento na collection restaurants:

{
"_id": ObjectId("..."),
"name": "Zucchini Land",
"cuisine": "French"
}

Para obter um exemplo sobre como localizar um documento, consulte Localizar um documento.

Para saber mais sobre como executar operações de escrita em massa em uma collection e lidar com possíveis erros, consulte Operações em massa.

← Excluir vários documentos