Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/
Ejemplos de uso

Realizar operaciones en masa

Puedes realizar operaciones de escritura masiva en una colección utilizando el BulkWrite() .

Tip

Lea la Ejemplos de uso para aprender cómo ejecutar este ejemplo.

Este ejemplo utiliza la siguiente Restaurant estructura como modelo para los documentos de la colección 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"`
}

La omitempty etiqueta struct omite el campo correspondiente del documento insertado cuando se deja vacío.

El siguiente ejemplo realiza lo siguiente en orden en la colección restaurants:

  • Coincide con un documento en el que el name es "Cafe Tomato" y lo reemplaza con un nuevo documento

  • Coincide con un documento en el que el name es "Cafe Zucchini" y actualiza el valor a "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)

Ver un ejemplo totalmente ejecutable

Después de ejecutar el ejemplo completo, puedes encontrar el siguiente documento en la colección restaurants:

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

Para obtener un ejemplo de cómo encontrar un documento, consulta Encontrar un documento.

Para saber más sobre cómo realizar operaciones de escritura masiva en una colección y gestionar posibles errores, consulta Operaciones masivas.