Projeção de MongoDB

Projeção de MongoDB
O recurso de projeção do MongoDB nos permite extrair apenas os dados necessários de um documento, em vez de toda a coleção de dados. A projeção usa o método find () em que os campos são especificados para serem explicitamente retornados e anexados com um valor de "1" ou "0". Quando um parâmetro de projeção tem um valor de 1, ele exibirá os documentos com base na pesquisa. E para desaparecer qualquer campo, o parâmetro de projeção entra o valor "0". A projeção é um fator importante na identificação de dados específicos do usuário dentro de uma determinada coleção de dados.

Como você usa a projeção para exibir os dados necessários no mongodb?

A projeção do MongoDB é baseada no método atual (). Assim, podemos especificar qualquer consulta de projeção que exija alterações significativas no método find () atual (). A maneira como a projeção é usada no MongoDB é assim: "Find (, " field_name ":" value ")". A sintaxe de projeção no MongoDB é a mesma que o método find (), mas adicionamos um conjunto de argumentos no método find (). Este conjunto de argumentos notifica a instância do mongodb qual campo de dados retornar. Usamos a coleção "bolo" onde a projeção do MongoDB é implementada. Mas para isso, temos que adicionar documentos a essa coleção. Usamos o método insertMany () do mongodb para inserção do documento. A consulta de inserir os documentos na coleção "Cake" é a seguinte:

dB.Bolo.InsertMany ([

"_id": 0,
"Nome": "Bolo de maçã",
"Calorias": 90.06,
"libras": 2,
"Preço": 540,
"Status": "disponível",
"Topping": [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

"_id": 1,
"Nome": "Bolo de chocolate",
"Calorias": 150.00,
"libras": 1,
"Preço": 600,
"Status": "disponível",
"Topping": [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

"_id": 2,
"Nome": "Bolo de gelo",
"Calorias": 102.56,
"libras": 3,
"Preço": 640,
"Status": "não disponível",
"Topping": [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

"_id": 3,
"Nome": "Bolo de café",
"Calorias": 180.41,
"libras": 2,
"Preço": 720,
"Status": "disponível",
"Topping": [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]

]))

Aqui, inserimos com sucesso o documento mostrado na imagem para usar a técnica de projeção.

Exemplo # 1: projeção de MongoDB para o campo especificado.

Aqui, apenas recuperamos o campo único, passando o parâmetro do projeto para o método find (). Temos a seguinte consulta em que o método find () leva os critérios de seleção vazios e o parâmetro de projeção. O parâmetro de projeção entra o "nome" do campo que é atribuído com o valor numérico "1" para exibir apenas esse campo como uma saída. O _ID é definido com o valor "0" porque o método find () sempre retorna o campo _id na saída.

dB.Bolo.encontre (, name: 1, _id: 0)

Todos os documentos são mostrados abaixo, mas com apenas um único "nome" de campo junto com seu valor correspondente, porque a projeção é aplicada a esse campo.

Exemplo # 2: projeção do MongoDB para vários campos.

Agora, estamos especificando os múltiplos campos para o parâmetro de projeção do método find () para exibir os dados apenas para os campos dos documentos. Aqui, temos uma consulta de projeção que está definida com o “nome” e “calorias” de campo. Como esses campos recebem o valor "1", que indica que os dados apenas desses campos são recuperados ao executar a consulta de projeção.

dB.Bolo.encontre (, "_id": 0, "nome": 1, "calorias": 1)

Portanto, buscamos com sucesso os dados apenas dos campos que são definidos como o parâmetro de projeção.

Exemplo # 3: projeção de mongodb para a condição especificada.

Fornecemos a declaração de projeção no exemplo acima mencionado sem os critérios de seleção. Agora, estamos usando a declaração de projeção junto com a condição. Na consulta de projeção abaixo, empregamos o método find () em que primeiro definimos os critérios de seleção que o campo de "status" deve ser igual ao valor "disponível". Em seguida, inserimos os campos "libras" e "preço" como parâmetro de projeção com o valor "1". Esses campos exibiram apenas os dados dos documentos que atendiam à condição "Status:" Disponível ".

dB.Bolo.encontrar(
Status: "Disponível",
"Pounds": 1, "Price": 1
)

Temos apenas três documentos cujo status está "disponível", que é mostrado na saída com os campos definidos como a projeção.

Exemplo # 4: projeção de mongodb para o campo especificado, exceto para campos excluídos.

Nesta consulta de projeção, marcamos os campos com o valor "0" para excluí -los do documento retornado. Nós implantamos o método find () em que a expressão "Status: Disponível" e o conjunto de argumentos de projeção são dados. O parâmetro de projeção forneceu os campos "status" e "preço" com o valor "0". O valor "0" indica que esses campos não aparecerão quando o documento dos critérios fornecidos for devolvido.

dB.Bolo.encontre (status: "disponível", status: 0, preço: 0)

Aqueles campos cujo status está "disponível" nos documentos são exibidos na imagem, exceto o status e o preço excluídos do campo.

Exemplo # 5: Operador de projeção do MongoDB “$ slice”.

A consulta de projeção otimiza a pesquisa e reduz o fluxo de trabalho quando seus operadores são utilizados. Temos vários operadores de consultas de projeção das quais usamos o operador $ slice neste exemplo. O operador $ Slice limita o número de documentos retornados como uma saída da consulta de projeção. Aqui, temos uma consulta de projeção do operador $ slice. Invocamos o método find () que é definido com o parâmetro vazio primeiro, onde a condição é definida. Em seguida, definimos o método find () com o parâmetro de projeção. O parâmetro de projeção é especificado com a declaração “libras: $ slice: 3”. O campo “libras” usa o operador $ slice que é definido com o valor “3” para vincular os documentos retornados na saída.

dB.Bolo.encontre (, libras: $ slice: 3)

A imagem a seguir exibiu apenas três documentos na saída porque o operador $ slice da declaração de projeção limita -a por um determinado valor.

Exemplo # 6: Operador de projeção do MongoDB “$ elematch”.

Agora, usamos outro operador de projeção "$ elematch". O operador $ elemmatch projeta o primeiro valor correspondente de uma matriz. As expressões de consulta $ text não são suportadas pelo $ elemmatch do operador de projeção. Além disso, a condição explícita é necessária para o operador de projeção $ elemmatch. Estabelecemos uma consulta de projeção em que os critérios de seleção são atribuídos primeiro ao método find () e a projeção é implementada. Para o parâmetro de projeção, fornecemos o campo "Topping". O campo "Topping" possui o operador $ Elematch, onde a condição "Sprinkleprice": 90 é atribuída para corresponder aos elementos da matriz.

dB.Bolo.encontre ("name": "Ice Cake", Topping: $ elemmatch: "Sprinkleprice": 90)

Estes são os documentos que recuperamos na saída após o operador $ Elematch da consulta de projeção.

Conclusão

O guia explorou a funcionalidade da projeção do MongoDB. A projeção do MongoDB refere -se a coletar apenas os dados relevantes, em vez de todo o conjunto de dados de um documento. Aprendemos como usar a consulta de projeção para adquirir os dados necessários da coleção fornecida. Executamos várias consultas de projeção para incluir e excluir os campos específicos usando os valores "1" e "0". Além disso, também usamos os operadores de projeção "$ slice" e "$ elematch" na consulta de projeção.