Visão geral
Neste guia, você pode aprender como usar o driver Java Reactive Streams para excluir documentos de uma coleção MongoDB realizando operações de exclusão.
Uma operação de exclusão exclui um ou mais documentos de uma coleção MongoDB . Você pode executar uma operação de exclusão utilizando os métodos deleteOne() ou deleteMany() .
Dados de amostra
Os exemplos neste guia usam a sample_restaurants.restaurants coleção dos conjuntos de dados de amostra do Atlas .
Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o tutorial de Introdução .
Importante
Biblioteca do Reator do Projeto
Este guia usa a biblioteca Project Reactor para consumir instâncias do Publisher retornadas pelos métodos de driver Java Reactive Streams. Para saber mais sobre a biblioteca do Projeto Reactor e como usá-la, consulte Introdução na documentação do Reactor. Para saber mais sobre como usamos os métodos da biblioteca do Project Reactor neste guia, consulte o guia Gravar dados no MongoDB.
Excluir operações
Você pode executar operações de exclusão no MongoDB usando os seguintes métodos:
deleteOne(), que exclui o primeiro documento que corresponde aos critérios do Atlas SearchdeleteMany(), que exclui todos os documentos que correspondem aos critérios do Atlas Search
Cada método de exclusão requer um filtro de query, que especifica os critérios de pesquisa que determinam quais documentos selecionar para remoção. Para obter mais informações sobre filtros de query, consulte a seção Documentos de filtro de query no manual do MongoDB Server .
Excluir um documento
Para excluir um único documento de uma coleção MongoDB , chame o método deleteOne() e passe seu filtro de query. Em seguida, passe o resultado deleteOne() para o método Mono.from estático de Mono. Mono é uma classe da biblioteca do Project Reactor. No Java Reactive Streams, os métodos do driver retornam instâncias Publisher frios, o que significa que a operação correspondente não acontece a menos que você assine o Publisher retornado. Este guia usa a biblioteca do Project Reactor para consumi-los. Para saber mais sobre o Mono, consulte Mono na documentação do Projeto Reactor.
O exemplo a seguir exclui um documento da collection restaurants que tem um valor name de "Ready Penny Inn":
Publisher<DeleteResult> deletePublisher = restaurants.deleteOne( eq("name", "Ready Penny Inn")); Mono.from(deletePublisher).block();
Excluir vários documentos
Para excluir vários documentos de uma coleção MongoDB , chame o método deleteMany() e passe seu filtro de query. Em seguida, passe o resultado deleteMany() para o método Mono.from estático de Mono. Mono é uma classe da biblioteca do Project Reactor. No Java Reactive Streams, os métodos do driver retornam instâncias Publisher frios, o que significa que a operação correspondente não acontece a menos que você assine o Publisher retornado. Este guia usa a biblioteca do Project Reactor para consumi-los. Para saber mais sobre o Mono, consulte Mono na documentação do Projeto Reactor.
O exemplo a seguir remove todos os documentos na collection borough restaurants "Brooklyn" têm um valor de :
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( eq("borough", "Brooklyn")); Mono.from(deletePublisher).block();
Personalizar a operação de exclusão
A classe DeleteOptions contém métodos que modificam o comportamento dos métodos de exclusão. Para usar a classe DeleteOptions , construa uma nova instância da classe e chame um ou mais de seus métodos para modificar a operação de exclusão. Você pode encadear essas chamadas de método. Para modificar o comportamento da operação de exclusão, passe a instância da classe e as chamadas de método encadeadas como o segundo argumento para o método deleteOne() ou deleteMany() .
Você pode utilizar os seguintes métodos na classe DeleteOptions para modificar um método de exclusão. Todos os métodos são opcionais.
Método | Descrição |
|---|---|
| Especifica o tipo de agrupamento de idiomas a ser usado ao classificar os resultados. Para obter mais informações, consulte Agrupamento no manual do MongoDB Server . |
| Obtém ou define o índice para procurar documentos. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server . |
| Obtém ou define o índice para procurar documentos. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server . |
| Um mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não façam referência aos campos do documento. Para obter mais informações, consulte a declaração let no manual do MongoDB Server . |
| Um comentário a ser anexado à operação. Para obter mais informações, consulte o guia de exclusão de campos de comando no manual do MongoDB Server para obter mais informações. |
| Um comentário a ser anexado à operação. Para obter mais informações, consulte o guia de exclusão de campos de comando no manual do MongoDB Server para obter mais informações. |
Exemplo
O código abaixo usa o método deleteMany() para excluir todos os documentos na collection restaurants com um valor name que inclui a string "Mongo". Ele também usa o método comment para adicionar um comentário à operação.
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( regex("name", "Mongo"), new DeleteOptions().comment("Deleting Mongo restaurants")); Mono.from(deletePublisher).block();
Informações adicionais
Para obter exemplos de código executáveis de inserção de documentos com o driver Java Reactive Streams, consulte o guia de operações CRUD.
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: