Função personalizada $ MONGODB

Função personalizada $ MONGODB
O MongoDB é um banco de dados orientado a documentos poderoso e flexível que permite aos desenvolvedores armazenar e recuperar dados em um formato semelhante ao JSON. Um dos recursos mais poderosos do MongoDB é sua capacidade de usar funções de $ personalizadas para manipular e consultar dados. Os métodos JavaScript personalizados do servidor, comumente referidos como "funções armazenadas", são suportadas pelo MongoDB e podem ser utilizadas na linguagem de consulta e nos estágios agregados de pipeline. Essas funções podem ser especificadas usando o banco de dados.sistema.Coleção JS e eles podem ser usados ​​em consultas ou no pipeline agregado usando o operador de função $. Neste artigo, vamos dar uma olhada em alguns exemplos de funções de $ personalizadas e a saída que eles produzem.

Criar coleção

Em primeiro lugar, verificaremos a coleção disponível em nosso banco de dados. Portanto, o shell do MongoDB foi lançado perfeitamente após se conectar com sua string de conexão. A instrução do MongoDB "Show Collections" foi executada para exibir todas as coleções que temos. Este comando não retorna nada no shell porque não há coleções em nosso banco de dados de "teste" como abaixo. Portanto, precisamos criar uma nova coleção primeiro e depois começar a trabalhar nela.

Teste> Mostrar coleções

Para adicionar ou criar uma nova coleção de dados no banco de dados MongoDB, devemos utilizar a instrução "db" seguida pelo método do createCollection. O método CreateCollection foi projetado especificamente para criar novas coleções, tomando o nome de uma coleção a ser criada em seu argumento. Na instrução abaixo, nomeamos a coleção como "teste". A saída do comando retorna o status de sucesso: 0 para falha e 1 para o sucesso. O comando abaixo retorna 1, o que significa que o comando foi bem -sucedido e a coleção foi criada.

Teste> dB.createCollection ("teste")
ok: 1

Insira registros

Depois de adicionar uma nova coleção ao banco de dados, é necessário adicionar registros a ele, porque a coleção pode estar vazia no momento da criação. Portanto, depois de usar a função InsertMany do mongodb na instrução "db", adicionamos 5 documentos à coleção "teste" de uma só vez. A função insertMany () é específica para inserir vários registros por vez. Todos os 5 registros contêm um total de 3 campos cada: título, cidade e área. O campo "Título" é do tipo "String", o campo de área é do tipo inteiro e o campo da cidade está na matriz do tipo string contendo elementos de string. A saída desta instrução mostra o reconhecimento, mostrando os IDs inseridos de cada documento designado separadamente pelo banco de dados MongoDB.

Teste> dB.Teste.InsertMany ([Title: "USA", City: ["Newyork", "Chicago", "Boston"], área: 234567,
… Title: "Emirados Árabes Unidos", Cidade: ["Dubai", "Abudhabi", "Sharjah"], Área: 786907,
… Title: "Asia", cidade: ["Bangkok", "Tóquio", "Pequim"], área: 984567,
… Title: "Europe", cidade: ["Itália", "Istambul", "Londres"], área: 1475997,
… Title: "Antarctica", Cidade: ["Villa Las Estrellas", "King Edward Point", "Grytvkin"], área: 2835997])

reconhecido: verdadeiro,
inserdids:
'0': objectId ("63CFFD7D64F216739D14B251"),
'1': objectId ("63CFFD7D64F216739D14B252"),
'2': objectId ("63CFFD7D64F216739D14B253"),
'3': objectId ("63CFFD7D64F216739D14B254"),
'4': objectId ("63CFFD7D64F216739D14B255")

Exibir registros

Após a inserção de todos os registros na coleção "teste" do banco de dados "Test" do MongoDB, estamos prontos para dar uma olhada em todos eles imediatamente para verificar a inserção. Assim, a função "encontrar" de MongoDB pode ser lançada na instrução "db" para esse fim. Certifique -se de usar o nome de uma coleção entre a palavra -chave "db" e a função find (). Os parâmetros da função "Find" devem conter os suportes encaracolados vazios sem especificar nenhum nome de campo. Os colchetes vazios consideram buscar todos os registros da coleção com todos os campos de dados enquanto especifica um ou mais campos que levam a uma única ou única exibição de registro especificada no shell. Portanto, a saída para esta instrução, com os colchetes vazios na função find (), exibiu todos os 5 registros da coleção "teste", cada um com todos os 3 campos: o título, a cidade e a área. Além disso, todo registro pode ser identificado separadamente de outro usando o campo "_id" atribuído pelo banco de dados MongoDB.

Teste> dB.Teste.encontrar()
[[
_id: objectId ("63CFFD7D64F216739D14B251"), Título: 'USA', City: ['NewYork', 'Chicago', 'Boston'], Área: 234567,
_id: objectId ("63CFFD7D64F216739D14B252"), Título: 'Emirados Árabes Unidos, cidade: [' Dubai ',' Abudhabi ',' sharjah '], área: 786907,
_id: objectId ("63CFFD7D64F216739D14B253"), Título: 'Ásia', Cidade: ['Bangkok', 'Tóquio', 'Pequim'], Área: 984567,
_id: objectId ("63CFFD7D64F216739D14B254"), Título: 'Europa', cidade: ['Itália', 'Istambul', 'Londres'], área: 1475997,
_id: objectId ("63CFFD7D64F216739D14B255"), Título: 'Antarctica', Cidade: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], Área: 2835997
]

Exemplo # 01:

Agora que terminamos com a inserção e exibição dos registros da coleção "Teste", finalmente estamos prontos para aplicar a função $ função para executar operações personalizáveis ​​nos campos. Por exemplo, você deseja criar um novo campo de tempo de execução na coleção "Teste" que conterá detalhes sobre o país, suas cidades e a área que ele contém em uma única frase. Para isso, precisamos utilizar todos os três campos da coleção "teste" dentro do operador de função $ personalizado usado na consulta de função "agregada" mostrada abaixo. A função personalizada leva todos os três campos da coleção "teste" em parâmetros para criar um novo campo "detalhe". A declaração de devolução está usando esses três campos para fazer uma frase e exibi -la no shell. É necessário especificar os campos de coleta como "args" e o idioma definido como "js". A saída está mostrando um novo campo de tempo de execução "Detalhe", fornecendo informações exatas em uma frase.

Teste> dB.Teste.agregado ([$ addfields: detalhe: $ function: body: function (title, cidade, área) return '$ title possui $ city cidades com $ área área…', args: ["$ title", "$ city", "$ área"], lang: "js"])))
[[
_id: objectId ("63CFFD7D64F216739D14B251"), Título: 'USA', City: ['Newyork', 'Chicago', 'Boston'], Área: 234567, Area Detalhe: 'USA tem Newyork, Chicago, Boston Cidades com 234567 … ',
_id: ObjectId("63cffd7d64f216739d14b252"), title: 'UAE', city: [ 'Dubai', ' AbuDhabi', ' Sharjah' ], area: 786907, Detail: 'UAE has Dubai, AbuDhabi, Sharjah cities with 786907 area … ',
_id: objectId ("63CFFD7D64F216739D14B253"), Título: 'Ásia', Cidade: ['Bangkok', 'Tóquio', 'Pequim'], Área: 984567, Detalhes: 'Asia Has Bangkok, Tóquio, BEIJing. … ',
_id: objectId ("63CFFD7D64F216739D14B254"), Título: 'Europa', cidade: ['Itália', 'Istambul', 'London'], área: 1475997, Area: 'Europa tem Itália, Istambul, Londres Cidades com 1477 … ',
_id: Objectid ("63CFFD7D64F216739D14B255"), Título: 'Antarctica', Cidade: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], Área: 28997, Detalhe: 'Antarctica Have Has Edward Point, Cidades de Grytvkin com 2835997 Área… '
]

Exemplo # 02:

Vamos dar uma olhada em outra ilustração para usar a função $ personalizado em mongodb. Aqui, estamos usando o operador $ addfields seguido pelo nome de um campo “Area Tripled” que queremos criar usando o operador de função $. A função personalizada leva 1 campo de campo como seu argumento e a palavra -chave "LET" nos permite declarar uma variável "triplo" assumindo um valor como valor de campo "área" multiplicado por 3. A declaração de retorno retornará e exibirá o resultado calculado na variável tripla. Portanto, a saída da instrução anexada abaixo exibe um total de 5 campos para cada documento do campo de teste. O campo “Area Tripled” foi gerado pelo uso de uma função personalizada mostrando a área para todas as três cidades listadas no campo “Cidade” de cada documento, multiplicando o valor do campo da área por 3.

Teste> dB.Teste.agregado ([$ addfields: AreaTriplled: $ function: body: function (área) let triple = área*3; return '$ triple', args: ["$ área"], lang: " JS "])
[[
_id: objectId ("63CFFD7D64F216739D14B251"), Título: 'USA', City: ['Newyork', 'Chicago', 'Boston'], Área: 234567, Area: '703701',
_id: objectId ("63cffd7d64f216739d14b252"), título: 'Emirados Árabes Unidos, cidade: [' dubai ',' abudhabi ',' sharjah '], área: 786907, AreaTripled:' 2360721 ',
_id: objectId ("63CFFD7D64F216739D14B253"), Título: 'Ásia', Cidade: ['Bangkok', 'Tóquio', 'Pequim'], Área: 984567, AreaTripled: '2953701',
_id: objectId ("63CFFD7D64F216739D14B254"), Título: 'Europa', cidade: ['Itália', 'Istambul', 'Londres'], Área: 1475997, Area: '4427991',
_id: ObjectId("63cffd7d64f216739d14b255"), title: 'Antarctica', city: [ 'Villa Las Estrellas ', ' King Edward point ', ' Grytvkin' ], area: 2835997, AreaTripled: '8507991' ]

Conclusão

O artigo é sobre as funções personalizadas em MongoDB e demonstra como um ambiente de MongoDB é tão poderoso usando essas funções: como essas funções permitem a inserção de dados do tipo JSON e sua recuperação. Depois disso, criamos a coleção e inserimos registros nela antes de usar o operador de função $ personalizado. Depois de definir o ambiente, usamos dois exemplos para ilustrar o uso da função $ personalizado. Os exemplos cobriram o uso de um operador de função $ personalizado para criar um novo campo de dados com a ajuda de campos já inseridos da coleção e também executar cálculos sempre que possível através do uso da declaração variável através do uso da palavra -chave "LET".