Exclua documentos
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
O exemplo nesta aba usa o seguinte struct Book
como um modelo para documentos na collection books
:
type Book struct { Title string Author string Length int32 }
Para executar o exemplo nesta aba, carregue os dados de amostra na collection db.books
com o seguinte trecho:
coll := client.Database("db").Collection("books") docs := []interface{}{ Book{Title: "Atonement", Author: "Ian McEwan", Length: 351}, Book{Title: "My Brilliant Friend", Author: "Elena Ferrante", Length: 331}, Book{Title: "Lucy", Author: "Jamaica Kincaid", Length: 103}, Book{Title: "Outline", Author: "Rachel Cusk", Length: 258}, } result, err := coll.InsertMany(context.TODO(), docs)
Cada documento contém uma descrição de um livro que inclui o título, o autor e o comprimento da página correspondentes aos campos title
, author
e length
em cada documento.
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á.
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
length
é maior que300
Instrói o método para utilizar o
_id
como o índice
filter := bson.D{{"length", bson.D{{"$gt", 300}}}} 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)
Number of documents deleted: 2
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.
Para saber mais sobre como especificar sugestões, consulte Índices.
Para saber mais sobre agrupamentos, consulte Agrupamentos.
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: