Menu Docs

Exclua documentos

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:

As operações deste guia referenciam a seguinte classe de modelo do Eloquent :

Corrigir.php
<?php
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.

O atributo $casts instrui o Laravel a converter atributos em tipos de dados comuns. Para saber mais, consulte Fundição de atributos na documentação do Laravel.

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.

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.

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.

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() .

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.

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.

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.