O MongoDB 5.0 é o fim da vida útil a partir de de 2024 outubro. Esta versão da documentação não é mais suportada. Para atualizar sua 5.0 implantação do, consulte o MongoDB 6.0 procedimentos de atualização.
Se você tiver campos de chave de shard ausentes, poderá definir o campo de chave de shard como null. Se você quiser definir o campo da chave de shard ausente para um valor diferentenull , consulte Alterar o valor da chave de shard de um documento.
Para realizar a atualização, você pode usar as seguintes operações em um mongos:
Pode ser usado para definir o valor da chave ausente para null ou qualquer outro valor.
Ao definir campos de chave de fragmento ausentes com um método que atualiza explicitamente apenas um documento, a atualização deve atender a um dos seguintes requisitos:
o filtro da query contém uma condição de igualdade na chave de fragmento completa na query
o filtro da query contém uma correspondência exata em _id
a atualização tem como alvo um único fragmento
Os valores de chave ausentes são retornados quando correspondem a null. Para evitar a atualização de um valor de chave que é null, inclua condições de query adicionais, conforme apropriado.
Para definir como um valor null , você pode especificar várias modificações da chave de shard na operação em massa.
Ao definir campos de chave de fragmento ausentes com um método que atualiza explicitamente apenas um documento, a atualização deve atender a um dos seguintes requisitos:
o filtro da query contém uma condição de igualdade na chave de fragmento completa na query
o filtro da query contém uma correspondência exata em _id
Para obter requisitos adicionais, consulte o comando/método subjacente.
Exemplo
Considere uma coleção sales fragmentada no campo location. Alguns documentos da coleção não possuem o campo location . Um campo ausente é considerado igual a um valor nulo para o campo. Para definir explicitamente esses campos como null, execute o seguinte comando:
db.sales.updateOne(
{ _id: 12345, location: null },
{ $set: { location: null } }
)
Ao definir campos de chave de fragmento ausentes com db.collection.updateOne() ou outro método que atualize explicitamente apenas um documento, a atualização deve atender a um dos seguintes requisitos:
o filtro da query contém uma condição de igualdade na chave de fragmento completa na query
o filtro da query contém uma correspondência exata em _id