Menu Docs
Página inicial do Docs
/ / /
Scala
/

Updates

Nesta página

  • Atualizações de campo
  • definir
  • Desconfigurar
  • Definir na inserção
  • Incremento
  • Multiplicar
  • renomear
  • Min
  • Máx
  • Data atual
  • Bit
  • Array Updates
  • Adicionar ao conjunto
  • Pop
  • Puxe tudo
  • Puxe
  • Empurrar
  • Combinando vários operadores de atualização

As Atualizações do fornece métodos de fábrica estáticos para os operadores de atualização do MongoDB . Cada método retorna uma instância do tipo Bson , que, por sua vez, pode ser passada para qualquer método que espere uma atualização.

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

Agregados