Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver Scala
/

Atualiza a classe de construtor

The Updates class provides static factory methods for the MongoDB update operators. Each method returns an instance of the Bson type, which can in turn be passed to any method that expects an update.

Você pode importar os métodos da classe Updates estaticamente, como mostrado no seguinte código:

import org.mongodb.scala.model.Updates._

Os exemplos deste guia pressupõem essa importação estática.

Esta seção descreve os operadores de atualização que se aplicam ao valor de um campo inteiro.

O operador de atualização $set define o valor de um campo para o valor especificado.

O seguinte exemplo define o valor do campo quantity para 11:

set("quantity", 11)

O operador de atualização $unset exclui o campo com o nome fornecido.

O exemplo seguinte exclui o campo quantity:

unset("quantity")

O operador de atualização $setOnInsert define o valor de um campo para o valor fornecido, mas somente se a atualização for um upsert que resulte em uma inserção de um documento.

O exemplo a seguir define o valor do campo defaultQuantity como 10 se um upsert resultou na inserção de um documento:

setOnInsert("defaultQuantity", 10)

O operador de atualização $inc incrementa o valor de um campo numérico em um valor especificado.

O exemplo seguinte incrementa o valor do campo quantity por 5:

inc("quantity", 5)

O operador de atualização $mul multiplica o valor de um campo numérico por um valor especificado.

O seguinte exemplo multiplica o valor do campo price por 1.2:

mul("price", 1.2)

O operador de atualização $rename renomeia um campo.

O exemplo a seguir renomeia o campo qty para quantity:

rename("qty", "quantity")

O operador de atualização $min atualiza o valor do campo para um valor especificado se o valor especificado for menor que o valor atual do campo.

O exemplo a seguir define o valor do campo lowScore para o mínimo de seu valor atual e 150:

min("lowScore", 150)

O operador de atualização $max atualiza o valor do campo para um valor especificado se o valor especificado for maior que o valor atual do campo.

O exemplo a seguir define o valor do campo highScore para o máximo de seu valor atual e 900:

max("highScore", 900)

O operador de atualização $currentDate define o valor do campo com o nome especificado para a data atual, seja como uma data BSON ou como um carimbo de data/hora BSON.

O exemplo a seguir define o valor do campo lastModified para a data atual como um tipo de data BSON:

currentDate("lastModified")

O exemplo a seguir define o valor do campo lastModified para a data atual como um tipo de carimbo de data/hora BSON:

currentTimestamp("lastModified")

O operador de atualização $bit executa uma atualização bitwise do valor integral de um campo.

O exemplo a seguir executa um AND bitwise entre o número 10 e o valor integral do campo de máscara:

bitwiseAnd("mask", 10)

O exemplo a seguir executa um OR bitwise entre o número 10 e o valor integral do campo de máscara:

bitwiseOr("mask", 10)

O exemplo a seguir executa um XOR bitwise entre o número 10 e o valor integral do campo de máscara:

bitwiseXor("mask", 10)

Esta seção descreve os operadores de atualização que se aplicam ao conteúdo do valor da array de um campo.

O operador de atualização $addToSet adiciona um valor a uma array, a menos que o valor já esteja presente, caso em que o operador não faz nada com essa array.

O exemplo seguinte adiciona o valor "a" ao valor da array do campo letters :

addToSet("letters", "a")

O exemplo a seguir adiciona cada um dos valores "a", "b" e "c" ao valor da array do campo letters :

addEachToSet("letters", Arrays.asList("a", "b", "c"))

O operador de atualização $pop remove o primeiro ou último elemento de uma array.

O exemplo a seguir remove o primeiro elemento do valor da array do campo scores :

popFirst("scores")

O exemplo a seguir remove o último elemento do valor da array do campo scores :

popLast("scores")

O operador de atualização $pullAll remove todas as instâncias dos valores especificados de uma array existente.

O exemplo a seguir remove as pontuações 0 e 5 da array scores :

pullAll("scores", Arrays.asList(0, 5))

O operador de atualização $pull remove de uma array existente todas as instâncias de um valor ou valores que correspondem a uma query especificada.

O exemplo a seguir remove o valor 0 da array scores :

pull("scores", 0)

O exemplo a seguir remove todos os elementos da array votes que são maiores ou iguais a 6:

pullByFilter(Filters.gte("votes", 6))

O operador de atualização $push acrescenta um valor especificado a uma array.

O exemplo a seguir empurra o valor 89 para a array scores :

push("scores", 89)

O exemplo a seguir empurra os valores 89, 90 e 92 para a array scores :

pushEach("scores", 89, 90, 92)

O exemplo a seguir empurra os valores 89, 90 e 92 para o início da array scores :

pushEach("scores", new PushOptions().position(0), 89, 90, 92)

O exemplo a seguir empurra os valores 89, 90 e 92 para a array scores , classifica a array em ordem decrescente e remove todos, exceto os primeiros elementos 5 da array:

pushEach("scores", new PushOptions().sort(-1).slice(5), 89, 90, 92)

O exemplo a seguir empurra os documentos { wk: 5, score: 8 }, { wk: 6, score: 7 } e { wk: 7, score: 6 } para a array de questionários, classifica a array em ordem decrescente por pontuação e remove todos, exceto os últimos 3 elementos da array:

pushEach("quizzes", new PushOptions().sortDocument(Sorts.descending("score")).slice(-3),
Document("week" -> 5, "score" -> 8),
Document("week" -> 6, "score" -> 7),
Document("week" -> 7, "score" -> 6))

Muitas vezes, um aplicação deve atualizar atomicamente vários campos de um único documento combinando dois ou mais operadores de atualização descritos nas seções anteriores.

O exemplo a seguir define o valor do campo quantity como 11, o valor do campo total como 30.40 e empurra os valores 4.99, 5.99 e 10.99 para o valor da array do campo prices :

combine(set("quantity", 11),
set("total", 30.40),
pushEach("prices", 4.99, 5.99, 10.99))

Voltar

Classe do Construtor de Agregados

Nesta página