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

Referencia rápida

Esta página muestra la sintaxis del driver para varias operaciones de MongoDB en el driver de Go y proporciona enlaces a documentación relacionada de referencia y API.

Operación
Sintaxis
err = coll.FindOne(context.TODO(), bson.D{{"firstName", Mike}}).Decode(&result)
cursor, err := coll.Find(context.TODO(), bson.D{{"age", bson.D{{"$gte", 46}}}})
result, err := coll.InsertOne(
context.TODO(),
bson.D{
{"firstName", "Aliya"},
{"lastName", "Sanders"}
}
)
docs := []any {
bson.D{{"firstName", "Erik"}, {"age", 27}},
bson.D{{"firstName", "Mohammad"}, {"lastName", "Ahmad"}, {"age", 10}},
bson.D{{"firstName", "Todd"}},
bson.D{{"firstName", "Juan"}, {"lastName", "Pablo"}}
}
result, err := coll.InsertMany(context.TODO(), docs)
result, err := coll.UpdateOne(
context.TODO(),
bson.D{{"firstName", "Erik"}},
bson.D{{"$set", bson.D{{"age", 28}}}}
)
fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount)
result, err := coll.UpdateMany(
context.TODO(),
bson.D{{"age", bson.D{{"$gte", 65}}}},
bson.D{{"$set", bson.D{{"classification", "senior"}}}}
)
fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount)

Actualizar arreglos en documentos

Documentación de la API
Update Arrays Guide

result, err := coll.UpdateMany(
context.TODO(),
bson.D{},
bson.D{{"$push", bson.D{{"hobbies", "painting"}}}}
)
result, err := coll.ReplaceOne(
context.TODO(),
bson.D{{"firstName", "Mick"}, {"lastName", "Salazar"}},
bson.D{{"firstName", "Michael"}, {"lastName", "Salazar Jr."}}
)
result, err := coll.DeleteOne(
context.TODO(),
bson.D{{"firstName", "Xiao"}}
)
results, err := coll.DeleteMany(
context.TODO(),
bson.D{{"age", bson.D{{"$lte", 12}}}}
)
models := []mongo.WriteModel{
mongo.NewInsertOneModel().SetDocument(bson.D{{"firstName", "John"}, {"age", 5}}),
mongo.NewUpdateOneModel().SetFilter(bson.D{{"firstName", "Juan"}}).
SetUpdate(bson.D{{"$set", bson.D{{"age", 12}}}}),
}
opts := options.BulkWrite().SetOrdered(true)
results, err := coll.BulkWrite(context.TODO(), models, opts)

Supervisar los cambios en los datos

Documentación de la API
Guía de Change Streams

pipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}}
cs, err := coll.Watch(context.TODO(), pipeline)
cursor, err := coll.Find(context.TODO(), bson.D{})
for cursor.Next(context.TODO()) {
var result bson.D
if err := cursor.Decode(&result); err != nil {
log.Fatal(err)
}
fmt.Println(result)
}
cursor, err := coll.Find(context.TODO(), bson.D{})
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
count, err := coll.CountDocuments(context.TODO(), bson.D{})

Lista de valores de campo distintos

Documentación de la API
Distinct Values Guide

var results []string
err = coll.Distinct(context.TODO(), "firstName", bson.D{}).Decode(&results)

Limita el número de document recuperados

Documentación de la API
Limitar referencia de documentos

cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetLimit(2))
// the collection has 6 documents
cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSkip(4))
cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSort(bson.D{{"age", 1}}))

Campos de documentos del proyecto en los resultados

Documentación de la API
Guía de proyección

cursor, err := coll.Find(
context.TODO(),
bson.D{},
options.Find().SetProjection(
bson.D{{"age", 0}, {"_id",0}}
)
)
model := mongo.IndexModel{Keys: bson.D{{"firstName", 1}, {"lastName", -1}}}
name, err := coll.Indexes().CreateOne(context.TODO(), model)
// Only searches on fields covered by text indexes
cursor, err := coll.Find(context.TODO(), bson.D{{"$text", bson.D{{"$search", "arts"}}}})
Califique esta página