Exclua documentos
Nesta página
Visão geral
Neste guia, você pode aprender como excluir documentos de uma coleção MongoDB usando a Integração Laravel. Use as operações de exclusão para remover dados do seu banco de dados MongoDB .
Esta seção fornece exemplos das seguintes operações de exclusão:
Modelo de amostra
As operações deste guia referenciam a seguinte classe de modelo do Eloquent :
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Concert extends Model { protected $connection = 'mongodb'; protected $fillable = ['performer', 'venue', 'genres', 'ticketsSold', 'performanceDate']; protected $casts = ['performanceDate' => 'datetime']; }
Dica
O atributo $fillable
permite utilizar a atribuição em massa Laravel para inserir operações. Para saber mais sobre atribuição em massa, consulte Personalizar Atribuição de Massa na documentação da Classe de Modelo Eloquent.
O atributo $casts
instrui o Laravel a converter atributos em tipos de dados comuns. Para saber mais, consulte Fundição de Atributo na documentação do Laravel.
Excluir um documento
Você pode excluir um documento das seguintes maneiras:
Ligue para o método
$model->delete()
em uma instância do modelo.Métodos de cadeia para recuperar e excluir uma instância de um modelo chamando o método
delete()
.Ligue para o método
Model::destroy($id)
no modelo, passando o valor_id
do documento a ser excluído.
Método delete()
O exemplo a seguir mostra como excluir um documento chamando $model->delete()
em uma instância do modelo:
$concert = Concert::first(); $concert->delete();
Quando o método delete()
é bem-sucedido, a operação retorna o número de documentos excluídos.
Se a parte de recuperação da chamada não corresponder a nenhum documento na coleção, a operação retornará 0
.
O exemplo a seguir mostra como encadear chamadas para recuperar o primeiro documento correspondente e excluí-lo:
Concert::where('venue', 'Carnegie Hall') ->limit(1) ->delete();
Observação
A chamada orderBy()
classifica os resultados pelo campo _id
para garantir uma ordem de classificação consistente. Para saber mais sobre classificação no MongoDB, consulte a entrada do glossário de ordem natural no manual do servidor MongoDB.
Quando o método delete()
é bem-sucedido, ele retorna o número de documentos excluídos.
Se o método where()
não corresponder a nenhum documento, o método delete()
retornará 0
.
Método destruir()
O exemplo a seguir mostra como excluir um documento passando o valor de seu valor _id
para o método Model::destroy($id)
:
$id = 'MSG-0212252000'; Concert::destroy($id);
Quando o método destroy()
é bem-sucedido, ele retorna o número de documentos excluídos.
Se o valor _id
não corresponder a nenhum documento, o método destroy()
retornará 0
.
Excluir vários documentos
Você pode excluir vários documentos das seguintes maneiras:
Chame o método
Model::destroy($ids)
, passando uma lista das IDs dos documentos ou instâncias de modelo a serem excluídas.Métodos de cadeia para recuperar um objeto de coleção do Laravel que faz referência a vários objetos e excluí-los chamando o método
delete()
.
Método destruir()
O exemplo a seguir mostra como excluir um documento passando uma array de valores _id
, representados por $ids
, para o método destroy()
:
$ids = [3, 5, 7, 9]; Concert::destroy($ids);
Dica
O desempenho do método destroy()
é prejudicado quando são passadas listas grandes. Para melhor desempenho, use Model::whereIn('id', $ids)->delete()
em vez disso.
Quando o método destroy()
é bem-sucedido, ele retorna o número de documentos excluídos.
Se os valores de _id
não corresponderem a nenhum documento, o método destroy()
retornará 0
.
Método delete()
O exemplo a seguir mostra como encadear chamadas para recuperar documentos correspondentes e excluí-los:
Concert::where('ticketsSold', '>', 7500) ->delete();
Quando o método delete()
é bem-sucedido, ele retorna o número de documentos excluídos.
Se o método where()
não corresponder a nenhum documento, o método delete()
retornará 0
.
Informações adicionais
Para saber mais sobre os recursos do Laravel disponíveis na Integração do Laravel que modificam o comportamento da exclusão, consulte as seguintes seções:
Exclusão suave, que permite marcar documentos como excluídos em vez de removê-los do banco de dados
Remoção, que permite definir condições que qualificam um documento para exclusão automática
Para visualizar exemplos de código executáveis que demonstram como excluir documentos usando a integração com o Laravel, consulte os seguintes exemplos de uso:
Para saber como inserir documentos em uma coleção MongoDB , consulte o guia Inserir Documentos.