Menu Docs
Página inicial do Docs
/ / /
Driver GO
/ / /

Exclua documentos

Nesta página

  • Visão geral
  • Dados de amostra
  • Excluir operações
  • Parâmetros
  • Valor de retorno
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como remover documentos de suas coleções MongoDB usando operações de exclusão.

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á.

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 filtro

  • DeleteMany(), 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().

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()
O índice a ser usado para digitalizar documentos a serem excluídos.
Padrão: nil
SetCollation()
O tipo de agrupamento de idiomas a ser usado ao classificar os resultados.
Padrão: nil

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.

O exemplo abaixo executa o seguinte com o método DeleteMany():

  • Corresponde e exclui documentos onde o length é maior que 300

  • 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)

Dica

Se o exemplo anterior usasse o método DeleteOne() em vez de DeleteMany(), o driver excluiria o primeiro dos dois documentos correspondentes.

Para obter exemplos executáveis das operações de exclusão, consulte os seguintes exemplos de uso:

  • Excluir um documento

  • Excluir vários documentos

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.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

  • DeleteOne()

  • DeleteMany()

  • Excluir opções

  • DeleteResult

← Insira um documento