Docs Menu
Docs Home
/ /

Bases de datos y colecciones

En esta guía, puede aprender cómo interactuar con bases de datos y colecciones de MongoDB mediante el controlador Go.

MongoDB organiza los datos en una jerarquía de los siguientes niveles:

  • Bases de datos: Estructuras de datos de nivel superior en una implementación de MongoDB que almacenan colecciones.

  • Colecciones: Grupos de documentos de MongoDB. Son análogos a las tablas en bases de datos relacionales.

  • Documentos: Unidades que almacenan datos literales como cadenas, números, fechas y otros documentos incrustados. Para obtener más información sobre los tipos y la estructura de los campos de documento, consulte Entrada dedocumentos en el manual del servidor MongoDB.

Puede acceder a una base de datos mediante el Database() método en una instancia Client.

El siguiente ejemplo accede a una base de datos llamada test_database:

database := client.Database("test_database")

Puedes acceder a una colección usando el método Collection() en una instancia de Database.

El siguiente ejemplo accede a una colección llamada test_collection:

collection := database.Collection("test_collection")

Tip

Si el nombre de la colección proporcionado aún no existe en la base de datos, MongoDB crea implícitamente la colección cuando se insertan datos en ella por primera vez.

Para crear explícitamente una colección, puede utilizar el método CreateCollection() en una instancia Database.

El siguiente ejemplo crea una colección llamada example_collection:

err = database.CreateCollection(context.TODO(), "example_collection")
if err != nil {
log.Fatalf("Failed to create collection: %v", err)
}

Puede especificar opciones de colección, como el tamaño máximo y las reglas de validación de documentos, pasando options.CreateCollectionOptions una CreateCollection() estructura al método de una Database instancia. Para obtener una lista completa de parámetros opcionales, consulte la entrada del comando create en el manual de MongoDB Server.

Puede consultar una lista de colecciones en una base de datos utilizando el método ListCollections() en una instancia Database.

El siguiente ejemplo obtiene una lista de todas las colecciones en una base de datos y luego imprime los nombres de las colecciones en la consola:

cursor, err := database.ListCollections(context.TODO(), bson.D{})
if err != nil {
log.Fatalf("Failed to list collections: %v", err)
}
defer cursor.Close(context.TODO())
for cursor.Next(context.TODO()) {
var collectionInfo bson.M
if err := cursor.Decode(&collectionInfo); err != nil {
log.Fatalf("Failed to decode collection info: %v", err)
}
if name, ok := collectionInfo["name"].(string); ok {
fmt.Println(name)
} else {
log.Println("Collection name not found or not a string")
}
}
if err := cursor.Err(); err != nil {
log.Fatalf("Cursor error: %v", err)
}

Puede borrar una colección utilizando el método Drop() en una instancia de Database.

El siguiente ejemplo borra una colección llamada test_collection:

err = database.Collection("test_collection").Drop(context.TODO())
if err != nil {
log.Fatalf("Failed to drop collection: %v", err)
}

Advertencia

Eliminar una colección borra todos los datos de la colección

Borrar una colección de la base de datos borra permanentemente todos los documentos y todos los índices dentro de esa colección.

Elimine una colección solo si ya no necesita los datos de esa colección.

Puede eliminar una base de datos utilizando el método Drop() en una instancia Database.

El siguiente ejemplo elimina una base de datos llamada test_database:

err = client.Database("test_database").Drop(context.TODO())
if err != nil {
log.Fatalf("Failed to drop database: %v", err)
}

Advertencia

Borrar una base de datos borra todos los datos de la base de datos.

Borrar una base de datos borra permanentemente todas las colecciones, documentos e índices dentro de esa base de datos.

Elimine una base de datos solo si ya no necesita los datos de esa base de datos.

Para aprender más sobre cualquiera de los tipos o métodos discutidos en esta guía, consulta la siguiente documentación de la API:

Volver

Paquete de contexto

En esta página