Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Realizar operaciones en masa

Puedes realizar operaciones masivas de guardar en una colección utilizando el método BulkWrite().

Tip

Lee los 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 completamente 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.