Definição
Observação
Desambiguação
A seguinte página refere-se ao operador de atualização. Para o estágio de agregação $unset,$unset consulte.
$unsetO operador exclui um campo
$unsetespecífico.
Compatibilidade
Você pode utilizar o $unset para implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O operador tem o seguinte $unset formato:
{ $unset: { <field1>: "", ... } }
O valor especificado na expressão $unset (ou"" seja,) não impacto a operação.
Para especificar um <field> em um documento incorporado ou em uma array, use a notação de ponto.
Comportamento
A partir do MongoDB 5.0, os operadores de atualização processam campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica. Consulte Atualizar Comportamento de Operadores para detalhes.
Se o campo não existir, então não fará nada (ou seja, nenhuma $unset operação).
Quando usado com para corresponder a $ $unset um null elemento de array, substitui o elemento correspondente por em vez de remover o elemento correspondente da array. Esse comportamento mantém consistente o tamanho da array e as posições dos elementos.
A partir do MongoDB,5.0 mongod não gera mais um erro quando você usa um operador de atualização como $unset com uma expressão de operando vazia ( { } ). Uma atualização vazia não resulta em nenhuma alteração e nenhuma entrada no oplog é criada (o que significa que a operação é um no-op).
Exemplo
Os exemplos nesta página usam dados do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.
O exemplo a seguir usa o operador para remover $unset os label status campos e do documento de filme correspondente:
db.movies.updateOne( { title: "The Dark Knight" }, { $unset: { label: "", status: "" } } )
A operação retorna o seguinte resultado:
{ acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 }