Excluir um documento
Nesta página
Visão geral
Neste guia, você pode aprender como remover documentos de suas coleções MongoDB usando operações de exclusão.
Dados de amostra
Para executar o exemplo neste guia, carregue estes documentos na collection tea.ratings
com o seguinte trecho:
coll := client.Database("tea").Collection("ratings") docs := []interface{}{ bson.D{{"type", "Masala"}, {"rating", 10}}, bson.D{{"type", "Earl Grey"}, {"rating", 7}}, bson.D{{"type", "Oolong"}, {"rating", 10}}, bson.D{{"type", "Assam"}, {"rating", 7}}, } result, err := coll.InsertMany(context.TODO(), docs) if err != nil { panic(err) } fmt.Printf("Number of documents inserted: %d\n", len(result.InsertedIDs))
Dica
Bancos de Dados e Coleções Inexistentes
Se o banco de dados e a collection necessários não existirem quando você executar uma operação de escrita, o servidor implicitamente os criará.
Cada documento contém uma classificação para um tipo de chá, que corresponde aos campos type
e rating
.
Excluir operações
Use excluir operações para remover dados do MongoDB. As operações de exclusão consistem nos seguintes métodos:
DeleteOne()
, que exclui o primeiro documento que corresponde ao filtroDeleteMany()
, que exclui todos os documentos que correspondem ao filtro
Dica
Se um documento corresponder ao seu filtro ao executar o método DeleteMany()
, será equivalente à execução do método DeleteOne()
.
Parâmetros
Os métodos DeleteOne()
e DeleteMany()
esperam que você passe um tipo Context
e um filtro de query non-nil
especificando quais documentos devem corresponder.
Ambos recebem opcionalmente um tipo DeleteOptions
como terceiro parâmetro, que representa opções que você pode usar para configurar a operação de exclusão. Se você não especificar um DeleteOptions
, o driver utilizará os valores padrão para cada opção.
O tipo DeleteOptions
permite a você configurar opções com os seguintes métodos:
Método | Descrição |
---|---|
SetHint() | The index to use to scan for documents to delete. Default: nil |
SetCollation() | The type of language collation to use when sorting results. Default: nil |
Valor de retorno
Os métodos DeleteOne()
e DeleteMany()
retornam um tipo de DeleteResult
. Este tipo contém a propriedade DeletedCount
, que declara o número de documentos excluídos. Se não houver nenhuma correspondência com seu filtro, nenhum documento será excluído e DeletedCount
será 0
.
Exemplo
O exemplo abaixo executa o seguinte com o método DeleteMany()
:
Corresponde e exclui documentos onde o
rating
é maior que8
Especifica o método para utilizar o
_id
como o índice
filter := bson.D{{"rating", bson.D{{"$gt", 8}}}} opts := options.Delete().SetHint(bson.D{{"_id", 1}}) result, err := coll.DeleteMany(context.TODO(), filter, opts) if err != nil { panic(err) } fmt.Printf("Number of documents deleted: %d\n", result.DeletedCount)
Dica
Se o exemplo anterior usasse o método DeleteOne()
em vez de DeleteMany()
, o driver excluiria o primeiro dos dois documentos correspondentes.
Informações adicionais
Para obter exemplos executáveis das operações de exclusão, consulte os seguintes exemplos de uso:
Para saber mais sobre como executar as operações mencionadas, consulte os seguintes guias:
Para saber como o driver usa o Contexto, consulte Contexto.
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: