Operadores MONGODB $ PRIMEIRO E $ FIRSTN

Operadores MONGODB $ PRIMEIRO E $ FIRSTN

Os operadores $ primeiro e $ primeiron são o método do pipeline de agregação do MongoDB. O Operador de Agregação Primeira $ nos permite determinar o primeiro valor em uma matriz. O operador $ primeiro leva apenas a matriz como um parâmetro de entrada. O operador $ primeiron retorna um número predefinido de entradas do índice inicial de uma matriz. O número especificado para o operador $ primeiron não pode ser menor que "1". Além disso, o operador $ primeiron fornece a matriz original se o número definido for maior ou igual aos valores da matriz.

Como usar os $ First e $ Firstn Operadores em MongoDB

Os operadores $ primeiro e $ primeiron são usados ​​no MongoDB para obter o número necessário de elementos da matriz de documentos. As operadoras $ primeiro e $ primeiron resolvem apenas os campos de matriz nos documentos da coleção MongoDBB. Estamos trabalhando com a coleção "FoodItems" neste artigo do MongoDBB. Adicionamos os documentos na coleção "FoodItems", que também contém o campo de matriz no qual a função $ First e $ Firstn. O comando para adicionar os documentos é representado aqui que usa o método insertMany () para a inserção ao mesmo tempo.

dB.Itens alimentares.InsertMany ([

"_id": 1,
"Nome": "frutas",
"Lista": ["maçã", "manga", "cereja", "kiwi"],
"Preço": 350
,

"_id": 2,
"Nome": "vegetais",
"Lista": ["beterraba", "rabanete", "nabo", "cenoura."],
"Preço": 255
,

"_id": 3,
"Nome": "Comida de lanche",
"Lista": ["pipoca", "amendoim salgado", "batatas fritas", "doces assados", "chocolates"]],
"Preço": 400
,

"_id": 4,
"Nome": "Beverages",
"Lista": ["Lemonade", "Milkshake", "Chá gelado", "café", "água", "chocolate quente"],
"Preço": 550
,
"_id": 5,
"Nome": "Comida do mar",
"Lista": NULL,
"Preço": 300

]))

Agora, os resultados da inserção dos documentos são exibidos no seguinte, que reconhecem "verdadeiro" e indicam que todos os documentos são inseridos sem nenhum erro na coleção especificada:


reconhecido: verdadeiro,
inserdIds: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Exemplo 1: Usando o operador MongoDB $ primeiro para obter o primeiro valor da matriz

Como já discutimos, o $ First Operator coleta o primeiro elemento do campo da matriz do documento especificado. No exemplo, usamos o $ First Operator of MongoDB para recuperar o primeiro valor do campo da matriz de todos os documentos que são inseridos na coleção "FoodItems". Implantamos o comando agregado em que o operador de projeto $ está especificado. O Operador de Projeto $ adiciona o novo campo "FirstItem", que possui o $ First Operator junto com a expressão. O $ First Operator pega o nome do campo da matriz "$ list" para obter o primeiro elemento.

dB.Itens alimentares.agregar([

$ projeto:
"FirstItem":
$ primeiro: "$ list"



]))

Podemos ver que o $ First Operator retorna o primeiro valor da matriz "$ list" de todos os documentos.

[[
_id: 1, FirstItem: 'Apple',
_id: 2, FirstItem: 'beterraba',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, FirstItem: null
]

Exemplo 2: Usando o operador MongoDB $ Primeiro para o operando inválido

Sabemos que o $ First Operator lida apenas com as matrizes. Mas a operadora de $ primeiro surge de fornecer um operando inválido. Aqui, temos um exemplo de dar um operando inválido no $ First Operator para aumentar a expectativa. Usamos a mesma consulta do exemplo anterior, mas a diferença está no $ First Operator, onde a expressão é alterada. Em vez de dar o campo da matriz a partir dos documentos, inserimos o campo "$ preço", que não contém os elementos da matriz. Quando a consulta é executada, o erro é gerado.

dB.Itens alimentares.agregar([

$ projeto:
"Item":
$ primeiro: "$ preço"



]))

O seguinte erro de MongoDB ocorre porque o campo de $ preços não é uma matriz. O $ Primeiro Operador em MongoDB lida apenas com as matrizes, conforme mencionado no seguinte erro:

MongoserverError: erro do PlaneXecutor durante a agregação :: causado por :: $ O argumento de primeiro

Exemplo 3: Usando o operador MongoDB $ primeiro para os valores ausentes e nulos da matriz

O $ First Operator retorna nulo se o argumento for um campo de matriz vazio ou um campo de matriz ausente. Combinamos o documento que detém o valor "_id" "5" porque ele contém o elemento de matriz nula. Depois disso, colocamos o $ First Operator no campo do operador de projeto, "FirstListValue". O $ First Operator possui o campo de matriz “$ list” de entrada para obter seu primeiro item.

dB.Itens alimentares.agregar([
$ Match: "_id": 5,
$ Project:
"FirstListValue":
$ primeiro: "$ list"



]))

Como vimos no documento "_id: 5", o campo de matriz $ contém o valor nulo. Quando o operador $ First Operador anterior é executado no shell, ele fornece o valor nulo.

[_id: 5, FirstListValue: null]

Exemplo 4: Usando o operador MONGODB $ FIRSTN para os valores Nth da matriz

Agora, buscamos o número necessário de elementos do campo de matriz. Para isso, temos o operador $ FirstN cuja implementação é ligeiramente diferente da operadora $ First com base na funcionalidade. Lá, definimos a expressão "_id: 3" no operador $ Match para corresponder ao documento com esta expressão. Em seguida, temos um novo campo "FirstListValue" que está incluído no operador $ Project Operator. O novo campo "FirstListValue" é empregado com o operador $ FirstN, onde os argumentos "entrada" e "n" são definidos. O argumento de "entrada" tem o nome do campo de matriz "$ listas". O argumento "n" tem o valor inteiro de "2", que indica o número de elementos que são buscados no campo de matriz fornecido.

dB.Itens alimentares.agregar([
$ Match: "_id": 3,
$ Project:
"FirstListValue":
$ primeiron: input: "$ list", n: 2



]))

Obtivemos dois elementos da seguinte matriz "$ list", pois o número é especificado para o operador $ FirstN:

[_id: 3, FirstListValue: ['Popcorn', 'Peanuts salgados']]]

Exemplo 5: Usando o operador MongoDB $ primeiro para o enésimo valor de uma matriz com a condição

Além disso, o argumento "n" do operador $ primeiron pode ser atribuído com um valor dinamicamente. O parâmetro "n" possui uma declaração condicional que está associada a ele que o informa para recuperar o elemento especificado da matriz quando a condição é satisfeita. Considere o seguinte comando do operador $ primeiron. Fornecemos o documento $ Match Operator com o documento "_id: 2" a ser correspondido para o operador $ primeiron. Depois disso, inserimos o campo "FirstListValue" dentro do Operador de Projeto $. Em seguida, temos um operador $ Firstn no campo projetado "FirstListValue" junto com seu parâmetro.

A “entrada” é o primeiro parâmetro definido no operador $ primeiron com o campo “$ list”. Em seguida, o parâmetro "n" é especificado com o operador $ cond que define a condição IF-ELSE. Dentro do "se", temos outra condição que é "$ gt: [" $ price ", 550]". Se o preço $ for maior que o valor de "550", o elemento "1" será recuperado. Caso contrário, a opção "else" exibe "3" elementos.

dB.Itens alimentares.agregar([
$ Match: _id: 2,
$ Project:
"FirstListValue":
$ primeiron: input: "$ list",
n: $ cond: if: $ gt: ["$ price", 550], então: 1, else: 3




]))

O operador $ Firstn gera três elementos da matriz $ LIST, porque o valor do preço de $ é "350" do documento especificado que não é maior que o valor especificado.

[_id: 2, FirstListValue: ['Beetroot', 'Radish', 'Turnip']]

Conclusão

Este artigo explorou o MongoDB $ primeiro e os operadores $ FirstN. Primeiro, os exemplos de $ First Operator são fornecidos com os diferentes casos. O exemplo do operador $ primeiro obteve o primeiro valor da matriz. Em seguida, o $ First Operator retorna o valor nulo, já que o campo da matriz tem o valor ausente. Depois disso, o exemplo de exceção do primeiro operador $ é dado para um argumento inválido. O operador $ FirstN é especificado para coletar os elementos NTH da matriz. Além disso, o operador $ primeiron coleta os elementos com base na condição que é dada ao parâmetro "n".