Visão geral
Neste guia, você aprenderá a interagir com bancos de dados e collections do MongoDB usando o driver Go.
O MongoDB organiza os dados em uma hierarquia dos seguintes níveis:
Bancos de dados: Estruturas de dados de nível superior em um MongoDB deployment que armazenam collections.
Collections: grupos de documentos do MongoDB . Elas são análogas às tabelas do banco de dados relacional.
Documentos: unidades que armazenam dados literais, como strings, números, datas e outros documentos incorporados. Para obter mais informações sobre os tipos de campo de documento e estrutura, consulte a entrada Documentos no manual do MongoDB Server.
Acessar um banco de dados
Você pode acessar um banco de dados utilizando o método Database()
em uma instância do Client
.
O exemplo a seguir acessa um banco de dados denominado test_database
:
database := client.Database("test_database")
Acessar uma coleção
Você pode acessar uma coleção utilizando o método Collection()
em uma instância do Database
.
O exemplo a seguir acessa uma coleção denominada test_collection
:
collection := database.Collection("test_collection")
Dica
Se o nome da coleção fornecido ainda não existir no banco de dados, o MongoDB criará implicitamente a coleção quando você inserir os dados pela primeira vez nela.
Criar uma coleção
Para criar uma coleção explicitamente, você pode utilizar o método CreateCollection()
em uma instância do Database
.
O exemplo a seguir cria uma collection chamada example_collection
:
err = database.CreateCollection(context.TODO(), "example_collection") if err != nil { log.Fatalf("Failed to create collection: %v", err) }
Você pode especificar opções de collection, como tamanho máximo e regras de validação de documento , passando uma estrutura options.CreateCollectionOptions
para o método CreateCollection()
de uma instância Database
. Para obter uma lista completa dos parâmetros opcionais, consulte a entrada de comando create no manual do MongoDB Server.
Obter uma lista de coleções
Você pode fazer query de uma lista de collections em um banco de dados usando o método ListCollections()
em uma instância Database
.
O exemplo a seguir obtém uma lista de todas as coleções em um banco de dados e, em seguida, imprime os nomes das coleções no console:
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) }
Excluir uma coleção
Você pode excluir uma coleção utilizando o método Drop()
em uma instância do Database
.
O exemplo a seguir exclui uma coleção chamada test_collection
:
err = database.Collection("test_collection").Drop(context.TODO()) if err != nil { log.Fatalf("Failed to drop collection: %v", err) }
Aviso
Eliminar uma coleção exclui todos os dados da coleção
Descartar uma collection do seu banco de dados exclui permanentemente todos os documentos e todos os índices dessa collection.
Solte uma coleção somente se não precisar mais dos dados dessa coleção.
Documentação da API
Para saber mais sobre qualquer um dos tipos ou métodos discutidos neste guia, consulte a seguinte documentação da API: