MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $mul


MongoDB tem um $mul operador de atualização de campo que permite multiplicar um valor por um valor específico.

Se o campo ainda não existir, ele será criado e seu valor será definido como zero (0 ) usando o mesmo tipo numérico que o multiplicador.

Exemplo


Suponha que temos uma coleção com o seguinte documento:
{ "_id" : 1, "bar" : 10 } 

Podemos usar o $mul operador em conjunto com o update() método para incrementar a bar campo.

Assim:
db.foo.update(
  { _id: 1 },
  { $mul: { bar: 2 } }
)

Saída:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Isso nos diz que um documento foi correspondido e modificado.

Vamos verificar a coleção novamente:
db.foo.find()

Resultado:
{ "_id" : 1, "bar" : 20 } 

Podemos ver que o valor dobrou para 20.

Multiplicar um campo que não existe


Quando você usa $mul em um campo que não existe no documento, o campo é adicionado e definido como zero (0 ) usando o mesmo tipo numérico que o multiplicador.

Exemplo:
db.foo.update(
  { _id: 1 },
  { $mul: { bar: 3, extra: 2 } }
)

Saída:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Observe que atualizamos dois campos; a bar campo e o extra campo (que não existia originalmente).

Vamos verificar o documento novamente:
db.foo.find()

Resultado:
{ "_id" : 1, "bar" : 60, "extra" : 0 } 

Podemos ver que a bar campo foi multiplicado por 3 , e um novo extra campo foi adicionado e definido como 0 .

Tipos mistos


A multiplicação com valores de tipos numéricos mistos (inteiro de 32 bits, inteiro de 64 bits, flutuante) pode resultar na conversão do tipo numérico.

Consulte a documentação do MongoDB para obter uma explicação.