Página inicial do Docs → Manual da Biblioteca PHP
MongoDB\Collection::findOneAndDelete()
Definição
Parâmetros
$filter
: array|object- Os critérios de filtro que especificam os documentos a serem excluídos.
$options
: arrayUm array especificando as opções desejadas.
NomeTipoDescriçãoagrupamentoarray|objectA colocação permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e marcas de acento. Ao especificar agrupamento, o campo
locale
é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.Se o agrupamento não for especificado, mas a collection tiver um agrupamento padrão, a operação usará o agrupamento especificado para a collection. Se nenhum agrupamento for especificado para a collection ou para a operação, o MongoDB usará a comparação binária simples usada em versões anteriores para comparações de string.
comentáriomistoPermite ao usuário especificar um comentário arbitrário para ajudar a rastrear a operação por meio do profiler de banco de dados, da saída currentOp e dos registros.
Esta opção está disponível desde o MongoDB 4.4 e resultará em uma exceção no momento da execução se for especificada para uma versão mais antiga do servidor.
Novidade na versão 1.13.
dicastring|array|objetoO índice a ser utilizado. Especifique o nome do índice como uma string ou o padrão da chave do índice como um documento. Se especificado, o sistema de query considerará apenas os planos usando o índice sugerido.
Esta opção está disponível desde o MongoDB 4.4 e resultará em uma exceção no momento da execução se for especificada para uma versão mais antiga do servidor.
Novidade na versão 1.7.
letarray|objectMapa 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. Os parâmetros podem ser acessados como variáveis em um contexto de expressão agregada (como
$$var
).Isto não é suportado para versões de servidor anteriores à 5.0 e resultará em uma exceção no tempo de execução se utilizado.
Novidade na versão 1.13.
maxTimeMSinteiroO limite de tempo cumulativo em milésimos de segundo para operações de processamento no cursor. O MongoDB aborta a operação o mais cedo possível após o ponto de interrupção.
projeçãoarray|objectA especificação da projeção para determinar quais campos incluir nos documentos devolvidos. Consulte Campos do projeto para retornar da consulta e Operadores de projeção no manual do MongoDB.sessionSessão do cliente a ser associada à operação.
Novidade na versão 1.3.
sortarray|objectA especificação de classificação para a ordenação dos resultados.typeMaparrayO mapa de tipos para aplicar aos cursores, que determina como os documentos BSON são convertidos para valores PHP. O padrão é o mapa de tipos da coleção.
Isso será usado para o documento de resultado retornado.
Escreva preocupaçãoPreocupação de gravação a ser usada na operação. O padrão é a preocupação de gravação da coleção.
Não é possível especificar uma preocupação de gravação para operações individuais como parte de uma transação. Em vez disso, defina a opção
writeConcern
ao iniciar a transação.
Valores de retorno
Uma array ou objeto para o documento que foi excluído, ou null
se nenhum documento corresponder à query. O tipo de retorno depende da opção typeMap
.
Erros/exceções
MongoDB\Exception\UnexpectedValueException
se a resposta do comando do servidor estiver malformada.
MongoDB\Exception\UnsupportedException
se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível do driver (por exemplo, erros de conexão).
Comportamento
Ao avaliar critérios de query, o MongoDB compara tipos e valores de acordo com suas próprias regras de comparação para tipos BSON, o que difere da comparação do PHP e digite malabarismo regras. Ao corresponder a um tipo BSON especial, os critérios de query devem usar a respectiva classe BSON no driver (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um ObjectId).
Exemplos
O exemplo a seguir localiza e exclui o documento com restaurant_id
de "40375376"
da collection de restaurants
no reconhecimento de data center test
:
$collection = (new MongoDB\Client)->test->restaurants; $deletedRestaurant = $collection->findOneAndDelete( [ 'restaurant_id' => '40375376' ], [ 'projection' => [ 'name' => 1, 'borough' => 1, 'restaurant_id' => 1, ], ] ); var_dump($deletedRestaurant);
A saída seria então semelhante a:
object(MongoDB\Model\BSONDocument)#17 (1) { ["storage":"ArrayObject":private]=> array(4) { ["_id"]=> object(MongoDB\BSON\ObjectId)#11 (1) { ["oid"]=> string(24) "594d5ef280a846852a4b3f70" } ["borough"]=> string(9) "Manhattan" ["name"]=> string(15) "Agra Restaurant" ["restaurant_id"]=> string(8) "40375376" } }
Veja também
referência do comando findAndModify no manual MongoDB