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 que você use a atribuição em massa do Laravel para operações de inserção. Para saber mais sobre a atribuição em massa, consulte Personalizar Atribuição de Massa na documentação da Classe de Modelo Eloquent.
The $casts
attribute instructs Laravel to convert attributes to common data types. To learn more, see Attribute Casting in the Laravel documentation.
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.