MONGODB $ ROUD

MONGODB $ ROUD
Enquanto trabalhamos com valores numéricos, encontramos muitos valores decimais contendo 1 ou mais pontos flutuantes no final. Em matemática, podemos converter os valores de flutuação para torná -los um valor inteiro arredondando os pontos de bóia após o "ponto". Existem certas regras para completar valores de pontos decimais i.e., só pode ser redondo para o seu próximo valor consecutivo se o valor do ponto de flutuação após o ponto for "5". Enquanto trabalha com o MongoDB, você pode encontrar valores decimais e deseja convertê -los em números inteiros. Para fazer isso, o MongoDB nos fornece o operador "redondo" para usar na função agregada. Neste guia, veremos como podemos usá -lo.

Crie coleção de banco de dados

Iniciamos o Shell MongoDB e exibimos todos os bancos de dados disponíveis através da consulta "Show DBS" do MongoDBB. A saída desta instrução mostra 3 bancos de dados internos enquanto o banco de dados fictício "teste" já está sendo utilizado.

Teste> Mostrar DBS
Admin 40.00 Kib
Config 72.00 Kib
Local 72.00 Kib

Se você deseja usar um banco de dados específico, execute a instrução "Use" junto com o nome do banco de dados e você usará o banco de dados específico em um momento.

Teste> Usar teste
Já no teste de banco de dados

Agora que terminamos de mover -se dentro do espaço de trabalho do banco de dados de "teste", temos permissão para criar coleções. Portanto, vamos criar uma coleção chamada "Ordem" neste banco de dados de "teste" pelo uso da função "CreateCollection" na instrução. A consulta para criar uma coleção junto com sua saída foi demonstrada abaixo.

Teste> dB.CreateCollection ("Ordem")
ok: 1

Para obter todas as coleções do banco de dados "Teste" listado no shell do MongoDB, use a consulta exibida e você receberá a coleção "Ordem" listada lá também.

Teste> Mostrar coleções
Ordem

Insira documentos na coleta

Depois que a coleção "Ordem" foi gerada, não podemos deixá -la vazia, pois temos que trabalhar em pontos decimais para utilizar o operador redondo de MongoDBB. Portanto, precisamos inserir pelo menos um campo que contém valores de ponto decimal. Então, estamos tentando a função InsertMany na instrução precedida pelo nome de uma coleção "Ordem" para inserir um total de 3 documentos. Cada documento contém 3 campos i.e., O campo "título" do tipo de string, o campo "Preço" do tipo inteiro e o campo "fiscal" do tipo de flutuação. O campo tributário contém valores com 1 ou mais pontos flutuantes.

Teste> dB.Ordem.InsertMany ([Title: "Pizza", Preço: 4500, Imposto: 99.5,
… Title: "Burger", Preço: 4200, Imposto: 49.56, Title: "Platter", Preço: 3900, Imposto: 55.25])

reconhecido: verdadeiro,
inserdids:
'0': objectId ("63B5A193639E00F0B5C51FAE"),
'1': objectId ("63B5A193639E00F0B5C51FAF"),
'2': objectId ("63B5A193639E00F0B5C51FB0")

Depois de inserir esses três documentos na coleção "Order" do banco de dados, estaremos exibindo -os no console do MongoDB e daremos uma olhada clara neles. Para isso, estaremos lançando a função "Encontre" do MongoDB precedido pelo nome de uma coleção "Ordem" na instrução. Use colchetes encaracolados “” dentro do argumento para exibir todos os documentos desta coleção sem especificar um. A saída para esta instrução tem exibido um total de 3 documentos abaixo.

Teste> dB.Ordem.encontrar()
[[

_id: objectId ("63B5A193639E00F0B5C51FAE"),
Título: 'Pizza',
Preço: 4500,
Imposto: 99.5
,

_id: objectId ("63B5A193639E00F0B5C51FAF"),
Título: 'Burger',
Preço: 4200,
Imposto: 49.56
,

_id: objectId ("63B5A193639E00F0B5C51FB0"),
Título: 'Platter',
Preço: 3900,
Imposto: 55.25

]

Exemplo # 01:

Agora que terminamos com os pré -requisitos e configurando o banco de dados, usaremos o operador redondo na instrução de shell de MongoDB para converter os valores decimais em números inteiros. Como temos apenas um campo "fiscal" que contém os valores decimais, estaremos aplicando o operador redondo apenas nele. Para usar o operador redondo, devemos usar a função agregada () do mongodb na instrução. Esta instrução inicia seus argumentos com o operador "Projeto", seguido pelo operador redondo.

Você também pode nomear o campo para a saída a ser exibida para valores de ponto decimal i.e., valores arredondados. Em seguida, o operador "rodada" deve conter o nome de um campo a ser atualizado junto com o número total de pontos decimais que você deseja que ele seja arredondado. No nosso caso, reunimos todos os valores de campo "fiscais" por 1 e obtivemos os valores modificados na saída. Esses valores contêm 1 valor de ponto decimal agora: 99.5 para permanecer 99.5 Como já tem apenas 1 ponto decimal, 49.56 a 49.6 Depois de arredondar 6 e 55.25 a 55.2.

Teste> dB.Ordem.agregado ([$ Project: RoundedValue: $ redond: ["$ tax", 1]]))
[[
_id: objectId ("63B5A193639E00F0B5C51FAE"), RoundedValue: 99.5,
_id: objectId ("63B5A193639E00F0B5C51FAF"), RoundedValue: 49.6,
_id: objectId ("63B5A193639E00F0B5C51FB0"), RoundedValue: 55.2
]

Quando você executa a função find () para ver o campo "imposto" de todos os documentos, você verá que os registros não são atualizados na coleção porque o operador redondo só funciona em tempo de execução.

Teste> dB.Ordem.encontrar()
[[

_id: objectId ("63B5A193639E00F0B5C51FAE"),
Título: 'Pizza',
Preço: 4500,
Imposto: 99.5
,

_id: objectId ("63B5A193639E00F0B5C51FAF"),
Título: 'Burger',
Preço: 4200,
Imposto: 49.56
,

_id: objectId ("63B5A193639E00F0B5C51FB0"),
Título: 'Platter',
Preço: 3900,
Imposto: 55.25

]

Se você deseja obter um número inteiro em vez de um valor de ponto decimal, pode usar o número total de pontos decimais "0" na consulta. Portanto, atualizamos a mesma instrução para o campo "imposto" e substituímos 1 com 0. Depois de executar a consulta da função agregada, temos todos os valores de números para o "imposto" de campo de todos os três documentos da coleção "Ordem" i i.e., 99.5 a 100, 49.56 a 50 e 55.25 a 55.

Teste> dB.Ordem.agregado ([$ Project: RoundedValue: $ RODON: ["$ Tax", 0]])
[[
_id: objectId ("63B5A193639E00F0B5C51FAE"), RoundedValue: 100,
_id: objectId ("63B5A193639E00F0B5C51FAF"), RoundedValue: 50,
_id: objectId ("63B5A193639E00F0B5C51FB0"), RoundedValue: 55
]

Agora, executando a mesma instrução de função find () no shell do MongoDB, temos a mesma saída que na ilustração acima I.e. Sem mudança porque a rodada funciona apenas em tempo de execução.

Teste> dB.Ordem.encontrar()
[[

_id: objectId ("63B5A193639E00F0B5C51FAE"),
Título: 'Pizza',
Preço: 4500,
Imposto: 99.5
,

_id: objectId ("63B5A193639E00F0B5C51FAF"),
Título: 'Burger',
Preço: 4200,
Imposto: 49.56
,

_id: objectId ("63B5A193639E00F0B5C51FB0"),
Título: 'Platter',
Preço: 3900,
Imposto: 55.25

]

Exemplo # 02:

Vamos usar outra maneira de utilizar o operador redondo no shell de MongoDB para completar os valores de ponto decimal i.e., É o mesmo com uma pequena diferença na colocação de operadores e argumentos. Dentro da função agregada, você colocará os argumentos no mesmo formato de matriz a partir do uso do operador do projeto. Vamos usar o nome de um campo para ser atualizado e definir seu status como "1" para exibir seu valor real que reside na coleção agora.

Em seguida, adicionaremos um novo campo chamado 'valor ”seguido pelo operador redondo e o nome de um campo“ Tax ”como seu argumento para torná -lo atualizado. Ele converterá todos os valores de ponto decimal em um número inteiro depois de arredondar os pontos decimais no final. A saída mostra os valores originais de campo "fiscal", juntamente com os valores atualizados arredondados no campo "valor".

Teste> dB.Ordem.agregado ([$ Project: Tax: 1, Valor: $ RODOD: ["$ tax"]]))
[[
_id: objectId ("63b5a193639e00f0b5c51fae"), imposto: 99.5, valor: 100,
_id: objectId ("63B5A193639E00F0B5C51FAF"), Tax: 49.56, valor: 50,
_id: objectId ("63b5a193639e00f0b5c51fb0"), imposto: 55.25, valor: 55
]

Conclusão

Depois de discutir o conceito de arredondar os valores decimais no campo da matemática, discutimos como o operador "redondo" do MongoDB pode ser eliminado para arredondar valores por vários pontos. Para limpar o uso do operador redondo em MongoDB, demonstramos dois exemplos contendo a função agregada que utiliza o operador redondo. Usando esses exemplos, completamos os valores em 1 e 2 pontos em tempo de execução, enquanto também vimos que o uso do operador redondo não modifica o valor real na coleção.