Visão geral
Neste guia, você pode aprender como usar o driver Ruby para remover documentos de uma coleção MongoDB realizando operações de exclusão.
Uma operação de exclusão remove um ou mais documentos de uma collection do MongoDB. Você pode executar uma operação de exclusão utilizando os métodos delete_one
ou delete_many
.
Dados de amostra
Os exemplos neste guia utilizam a coleção do restaurants
no banco de dados do sample_restaurants
a partir dosconjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação Ruby, crie um objeto Mongo::Client
que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis database
e collection
:
database = client.use('sample_restaurants') collection = database[:restaurants]
Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .
Excluir operações
Você pode executar operações de exclusão no MongoDB usando os seguintes métodos:
delete_one
, que exclui o primeiro documento que corresponde aos critérios do Atlas Searchdelete_many
, que exclui todos os documentos que correspondem aos critérios do Atlas Search
Cada método de exclusão requer um parâmetro de filtro de query, que especifica os critérios de pesquisa que determinam quais documentos selecionar para remoção. Para saber mais sobre filtros de query, consulte o guia Especificar uma query.
Excluir um documento
O exemplo a seguir usa o método delete_one
para remover um documento no qual o valor do campo name
é "Happy Garden"
:
filter = { name: 'Happy Garden' } result = collection.delete_one(filter) puts "Deleted #{result.deleted_count} document(s)"
Deleted 1 document(s)
Excluir vários documentos
O exemplo a seguir usa o método delete_many
para remover todos os documentos nos quais o valor do campo borough
é "Brooklyn"
e o valor do campo name
é "Starbucks"
:
filter = { name: 'Starbucks', borough: 'Brooklyn' } result = collection.delete_many(filter) puts "Deleted #{result.deleted_count} document(s)"
Deleted 3 document(s)
Personalizar a operação de exclusão
Você pode passar um objeto Hash
como parâmetro para os métodos delete_one
e delete_many
para definir opções para configurar a operação de exclusão. Se você não especificar nenhuma opção, o driver executará a operação de exclusão com as configurações padrão.
A tabela a seguir descreve as opções que você pode usar para configurar a operação de exclusão:
Opção | Descrição |
---|---|
| Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
| Specifies the session to use for the operation. To learn more about sessions, see
Client Sessions and Causal Consistency Guarantees
in the MongoDB Server manual. |
| Specifies the index to use when matching documents.
For more information, see the hint
option in the delete reference page of the MongoDB Server manual. |
| Provides a map of parameter names and values to set top-level
variables for the operation. Values must be constant or closed
expressions that don't reference document fields. For more information,
see the let option in the delete
reference page of the MongoDB Server manual. |
Exemplo de modificação de exclusão
O código a seguir especifica a opção hint
para instruir a operação de exclusão a usar o índice "name_index"
. Em seguida, o exemplo utiliza o método delete_many
para excluir todos os documentos na coleção restaurants
com um valor de campo name
que inclui a string "Red"
.
filter = { name: /Red/ } options = { hint: 'name_index' } result = collection.delete_many(filter, options) puts "Deleted #{result.deleted_count} document(s)"
Deleted 124 document(s)
Dica
Se você usar o método delete_one
no exemplo anterior, em vez do método delete_many
, o driver excluirá apenas o primeiro documento que corresponde ao filtro de query.
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: