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 somente para null . Pode ser executado dentro ou fora de uma transação. Pode ser executada como uma gravação repetível ou não. Para obter requisitos adicionais, consulte o comando/método específico.
|
| | Pode ser usado para definir o valor da chave ausente para null ou qualquer outro valor. A atualização para definir campos de chave de fragmento ausentes 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
Para definir como um valor diferente denull , consulte Alterar o valor da chave de fragmento de um documento. Para obter requisitos adicionais, consulte o comando/método específico.
|
| | 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 diferente denull , consulte Alterar o valor da chave de fragmento de um documento. Para obter requisitos adicionais, consulte o comando/método específico.
|
| | 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 a atualização tem como alvo um único fragmento
Para definir como um valor diferente denull , consulte Alterar o valor da chave de fragmento de um documento. Para obter requisitos adicionais, consulte o comando/método subjacente.
|
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
a atualização tem como alvo um único fragmento