Operador de filtro de mongodb $

Operador de filtro de mongodb $
O operador de filtro MongoDB $ recupera um subconjunto de uma matriz baseada em um critério predefinido. Em outra palavra, o operador $ filtro fornece uma matriz que contém apenas os elementos que satisfazem os critérios na ordem em que foram especificados. O operador de $ filtro possui parâmetros que incluem a "entrada", "como" e "cond". O argumento de "entrada" é a expressão que leva o campo da matriz para filtrar o documento especificado. Em seguida, é o argumento opcional "AS", que leva o nome da variável do elemento da matriz de entrada para acessar cada elemento. Então, o argumento "cond" determina se o elemento está incluído na matriz resultante.

Como o operador de $ filtro é usado no MongoDB

O operador $ filtro do MongoDB é usado para filtrar os dados da matriz de acordo com a declaração condicional fornecida. O uso do operador $ filtro trabalha nos documentos que são inseridos na coleção especificada de MongoDB. Aqui, implantamos a consulta InsertMany () de MongoDB para inserir três documentos na coleção "Cricket". Cada registro contém três campos - "_id", "Player" e o "RunsRecord" - que são definidos como uma matriz. O formato de inserção de documentos é representado no seguinte:

dB.Grilo.InsertMany ([
"_id": 1,
"Jogador": "Ravi",
"RunsRecord": [100, 50, 70],
"Partidas" :

"Match1": "WorldCup",
"Ano": "2000"

,

"_id": 2,
"Jogador": "Andrew",
"RunsRecord": [150, 90, 55]
,

"_id": 3,
"Jogador": "Smith",
"RunsRecord": [80, 99, 45]
,

"_id": 4,
"Jogador": "Alex",
"RunsRecord": []
])

Os documentos da coleção "Cricket" são inseridos com sucesso, conforme mostrado na seguinte saída:

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

Exemplo 1: MongoDB usa o operador $ filtro em MongoDB

O operador básico de $ filtro do exemplo do MongoDB é fornecido nesta seção. Estabelecemos uma consulta em que o operador de projeto $ é chamado no método agregado. Invocamos o operador de $ filtro dentro do operador de projeto $. O operador $ filtro é mais especificado com seu parâmetro. O parâmetro "Entrada" é definido com o nome do campo "$ runsrecord" com o sinal "$" para extrair os dados dele. Em seguida, usamos o parâmetro "AS" para dar o título à variável de retorno "RunSRecord". Essa variável é então referida usando o parâmetro "cond" com o sinal de dólar duplo, "$$". Em seguida, é o parâmetro "cond" em que a expressão é atribuída como "$ gt: [" $$ runsrecord ", 50]". As condições implicam que o operador "$ GT" recebe o elemento da matriz, que é maior que o valor de "50" no campo de matriz "RunsRecord".

dB.Grilo.agregar([

$ projeto:
Highruns:
$ filtro:
entrada: "$ runsrecord",
AS: "RunsRecord",
cond: $ gt: ["$$ runsrecord", 50]




]))

Os resultados da consulta $ filtro seguinte retornam apenas os valores da matriz que é maior "50". O valor menor que "50" é ignorado pelo operador $ filtro.

[[
_id: 1, Highruns: [100, 70],
_id: 2, Highruns: [150, 90, 55],
_id: 3, Highruns: [80, 99],
_id: 4, Highruns: []
]

Exemplo 2: MongoDB usa o operador $ filtro para filtrar o campo de inexistência

Agora, tomamos um caso em que o operador de filtro $ é aplicado ao campo que não está presente em nenhum documento de coleção inserido. Aqui, temos uma consulta em que o operador $ filtro é empregado com os parâmetros. O parâmetro de entrada é definido com o campo "$ salário" para filtrar o documento. Em seguida, utilizamos o parâmetro opcional "AS", que também é dado com o nome da variável, "Salário", que é usado na matriz de entrada como um elemento. Depois disso, temos uma expressão condicional no parâmetro "cond" do $ filtro. O operador $ filtro filtra o elemento da matriz com base na condição especificada que é "$ GTE: [" $$ Salário ", 6000]".

dB.Grilo.agregar([

$ Match: _id: $ in: [2]
,

$ projeto:
Highruns:
$ filtro:
entrada: "$ salário",
AS: "Salário",
cond: $ gte: ["$$ salário", 6000]




]))

Como sabemos, o campo "Salário" fornecido não está presente no documento cujo "_id" é "2", portanto a saída da consulta anterior do operador $ filtro fornece um valor nulo.

[_id: 2, Highruns: null]

Exemplo 3: MongoDB usa o operador $ filtro para filtrar a matriz vazia

Em seguida, é o cenário em que o $ FILTER é empregado sobre a matriz vazia. O operador $ filtro retorna um conjunto de matrizes vazios se um dos documentos da coleção tiver uma matriz vazia. Temos a seguinte consulta de operador de filtro $. Temos o operador $ Match primeiro onde a expressão “_id: $ in: [4]” é fornecida para ser satisfeita. Quando o $ em operador encontra o valor de "4" no campo "_id", o próximo operador prossegue. Em seguida, temos um operador de filtro $ que filtra a matriz de elementos com base na condição dada que é "$ gt: [" $$ runsrecord ", 45]".

dB.Grilo.agregar([

$ Match: _id: $ in: [4]
,

$ projeto:
Highruns:
$ filtro:
entrada: "$ runsrecord",
AS: "RunsRecord",
cond: $ gt: ["$$ runsrecord", 45]




]))

O "_id: 4" tem o campo "RunsRecord" que está vazio. É por isso que quando a consulta é executada, ela gera a matriz vazia da seguinte forma:

[_id: 4, Highruns: []]

Exemplo 4: MongoDB usa o operador $ filtro em MongoDB com o nome da variável opcional

Estabelecemos um título para a variável nas instâncias anteriores usando o argumento "AS". Se o argumento "AS" não for definido com nenhum nome de variável, a variável "$ this" será definida por padrão por MongoDBB. Vamos fazer o exemplo de consulta para esta afirmação. Combinamos o documento chamando o operador $ match, onde temos um campo "_id" no qual os valores são definidos. Atribuímos um operador de $ filtro ao operador "$ Project", onde o operador de $ filtro é chamado com os parâmetros. Aqui, temos um parâmetro de "entrada" com o nome do campo de matriz "$ runsrecord". Em seguida, aplicamos o parâmetro "cond" com a condição especificada. A condição é definida como "cond: $ lt: [" $$ th This ", 80]". Desta vez, o operador $ LT é usado para encontrar o valor que é menor que o valor de "80". Observe que, em vez de um nome de variável "$$ runsrecord", usamos o nome da variável padrão "$$ th This" aqui que não afeta a saída resultante.

dB.Grilo.agregar([

$ Match: _id: $ in: [1, 2, 3, 4]
,

$ projeto:
Highruns:
$ filtro:
entrada: "$ runsrecord",
cond: $ lt: ["$$ th This", 80]




]))

O operador $ filtro filtra a matriz especificada com a $ esta variável da mesma maneira que com a variável especificada.

[[
_id: 1, Highruns: [50, 70],
_id: 2, Highruns: [55],
_id: 3, Highruns: [45],
_id: 4, Highruns: []
]

Exemplo 5: MongoDB usa o operador $ filtro para filtrar com várias condições

Podemos fornecer mais de uma condição ao operador $ filtro para filtrar apenas os documentos que correspondem à condição fornecida. Aqui, definimos o operador $ filtro, onde o $ e o operador são usados ​​no parâmetro "cond". O $ e o operador são definidos com várias condições como "$ gte: [" $$ runsrecord ", 45]" e "$ lte: [" $$ runsRecord ", 99]". O $ e o operador são usados ​​que exigem ambas as condições como verdadeiras.

dB.Grilo.agregar([

$ projeto:
Highruns:
$ filtro:
entrada: "$ runsrecord",
AS: "RunsRecord",
cond: $ e: [
$ GTE: ["$$ runsRecord", 45],
$ LTE: ["$$ runSrecord", 99]
]




]))

Com as múltiplas condições, filtramos o documento correspondente no seguinte:

[[
_id: 1, Highruns: [50, 70],
_id: 2, Highruns: [90, 55],
_id: 3, Highruns: [80, 99, 45],
_id: 4, Highruns: []
]

Conclusão

Exploramos este artigo, que é sobre o operador $ filtro do MongoDB. Aqui, fornecemos a implementação do script do MongoDB do operador $ filtro para filtrar os dados especificados. Primeiro demonstramos o uso básico do operador $ filtro. Em seguida, usamos o operador $ filtro sobre o documento cujo campo não é adicionado no documento. A caixa de campo de matriz vazia também é implantada no operador $ filtro, que recupera a matriz vazia. Além disso, o operador $ filtro é usado com a $ esta variável, que é a variável padrão.