As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$setOnInsert
O $setOnInsert operador no Amazon DocumentDB é usado para definir o valor de um campo se um documento estiver sendo inserido, mas não terá efeito se o documento estiver sendo atualizado.
Parâmetros
-
field: O campo a ser definido. -
value: o valor a ser atribuído ao campo.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra o uso do $setOnInsert operador no Amazon DocumentDB. Ele cria um novo documento se o documento ainda não existir, mas não tem efeito se o documento estiver sendo atualizado.
Crie documentos de amostra
db.users.insertOne({ _id: 1, name: "John Doe", age: 30 })
Exemplo de consulta 1 - Atualizar documento existente
db.users.update( { _id: 1 }, { $set: { age: 31 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Saída 1
{ _id: 1, name: "John Doe", age: 31 }
A saída mostra que o documento foi atualizado, mas o createdAt campo NÃO foi adicionado porque o documento já existia. O $setOnInsert operador só se aplica ao inserir novos documentos.
Exemplo de consulta 2 - Inserir novo documento (upsert)
db.users.update( { _id: 2 }, { $set: { name: "Jane Smith", age: 25 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Saída 2
{ _id: 2, name: "Jane Smith", age: 25, createdAt: ISODate("2025-10-31T09:57:52.459Z") } }
Exemplos de código
Para ver um exemplo de código para usar o $setOnInsert comando, escolha a guia do idioma que você deseja usar: