Consulta MongoDB FindOne

Consulta MongoDB FindOne
As coleções em MongoDB são semelhantes a uma tabela em um RDBMS. Aqui, recuperamos um determinado documento da coleção MongoDB com o método findOne (). O método findOne () é um método interno de MongoDB que retorna um único documento quando os critérios de consulta definidos são alcançados. Se mais de um documento corresponder à consulta, o primeiro na ordem natural será retornado pelo método findOne (). Em palavras simples, a ordem dos documentos é a mesma que a ordem de inserção dos documentos na coleção.

Como usar a consulta FindOne em MongoDB

O método findOne () retorna apenas o único documento do nome da coleção fornecido quando ele é executado no shell do MongoDB. Além disso, o método findOne () também leva o parâmetro que inclui a expressão condicional e a projeção. O valor paramétrico é discutido no seguinte exemplo em execução. Antes disso, incorporamos os documentos dentro da coleção "Mobiles". Usamos a consulta InsertMany para adicionar os documentos em nossa coleção "móvel". A consulta de inserção é dada no seguinte:

dB.Móvel.InsertMany ([

_id: 1,
Marca: "Oppo",
Nome: "OPPO F21 PRO",
Garantia: "5",
Preço: 51000
,

_id: 2,
Marca: "Samsung",
Nome: "Samsung A12",
Garantia: "2",
Preço: 45000
,

_id: 3,
Marca: "OnePlus",
Nome: "OnePlus 8 Pro",
Garantia: "6",
Preço: 900000
,

_id: 4,
Marca: "Infinix",
Nome: "Infinix Note 7",
Garantia: "1",
Preço: 67000
,

_id: 5,
Marca: "Vivo",
Nome: "Vivo S1",
Garantia: "3",
Preço: 21600

]))

O resultado, que é visto na imagem a seguir, mostra que os documentos são adicionados à coleção "Mobiles" com sucesso. Agora, usamos esta coleção de amostras de "celulares" para mostrar o funcionamento da consulta FindOne para buscar o único documento.

Exemplo 1: Usando a consulta FindOne em MongoDB

Aqui, invocamos o método findOne () com os parâmetros vazios apenas para ver o funcionamento do método findOne () sem nenhum valor paramétrico. Temos uma consulta em que a coleção "Mobile" é fornecida e o método findOne () é chamado pela coleção "Mobile".

dB.Móvel.FindOne ()

A consulta de findOne (), após a execução, retorna o single e o primeiro documento da coleção "Mobile", porque não há condição definida para adquirir o documento específico. Portanto, ao executar o método findOne () com especificações de consulta vazias, ele sempre retorna o primeiro documento da coleção.

Exemplo 2: Usando a consulta FindOne em MongoDB, fornecendo o campo

Aqui, usamos o método findOne () com um parâmetro de consulta. O parâmetro de consulta é definido como "nome:" Vivo S1 "", que encontra o documento cujo campo "nome" é igual ao valor "Viva S1". Se dois ou mais documentos com os mesmos resultados forem recuperados, apenas o primeiro documento correspondente será buscado pelo método findOne (). Temos o seguinte método findOne () com a especificação da consulta:

dB.Móvel.findOne (Name: "Vivo S1")

Como temos apenas um documento cujo campo "nome" contém o valor "Vivo S1" na coleção "Mobile", que é vista como um documento resultante na imagem a seguir:

Exemplo 3: Usando a consulta FindOne em MongoDB, fornecendo o valor do campo de inexistência

Quando o documento não é comparado com as especificações de consulta fornecidas, o método findOne () retorna o valor "nulo" na saída. Aqui, damos uma consulta dentro do método findOne () em que definimos os critérios “_id: 6”. O campo _id é atribuído com um valor de "6" que não está incluído em nossa coleção de "celulares" do MongoDB.

dB.Móvel.findOne (_ id: 6)

Como podemos ver, a sequência nula é obtida após a execução da consulta FindOne anterior. Isso ocorre porque o valor "6" _ID corresponde a qualquer um dos documentos "celulares".

Exemplo 4: Usando a consulta FindOne em MongoDB, fornecendo a projeção

O método findOne () gera um documento que inclui apenas os campos de projeção se um argumento de projeção for especificado. O parâmetro de projeção aqui exibe os campos incluídos. Temos a seguinte consulta FindOne, onde definimos os critérios “Brand:“ Samsung ”” e depois definimos o parâmetro de projeção que inclui a expressão “Price: 1”. O método findOne () corresponde primeiro ao documento com os critérios fornecidos e depois exibe o campo "Preço" desse documento em particular, porque a projeção é definida no campo "Preço". O "preço" é dado com um valor "1" e o valor "1" é indicado como verdadeiro na projeção do MongoDBB.

dB.Móvel.FindOne (Brand: "Samsung", Price: 1)

A consulta FindOne corresponde ao documento cuja "marca" tem o valor "Samsung" e exibe o campo de documentos "Price" na saída. Por padrão, o campo "_id" é o único campo que sempre é exibido ao executar o método findOne ().

Exemplo 5: Usando a consulta FindOne em MongoDB, fornecendo a projeção para excluir os campos

No exemplo anterior do método findOne (), usamos o parâmetro de projeção no método findOne () para incluir os campos específicos. Agora, usamos o método findOne () para identificar o documento com os critérios correspondentes. Então, o parâmetro de projeção exclui o campo específico desse documento. Esta explicação pode ser facilmente entendida com o seguinte comando de consulta. Definimos o método findOne () com os critérios de seleção “Brand:“ OPPP ”. O método findOne () corresponde ao documento da coleção "Mobiles" cujo valor de "marca" é "opo". Em seguida, exclua os campos "_id", "nome" e "preço" do documento correspondente, porque o valor da projeção a esses campos é atribuído com o valor "0", o que significa false.

dB.Móvel.FindOne (
Brand: "OPPO",
_id: 0, nome: 0, preço: 0
)

Lá, temos um documento que é recuperado como uma saída da consulta FindOne cuja "marca" e "garantia" campos são exibidos apenas e todos os outros campos são excluídos.

Exemplo 6: Usando a consulta FindOne em MongoDB, fornecendo o operador condicional

Este exemplo é o método findOne () com as especificações de consulta como operador condicional “$ ou”. O método findOne () corresponde apenas ao documento que atende ao requisito $ ou do operador. Vamos fazer uma consulta sobre isso. Temos uma consulta seguinte onde implantamos o método findOne () e depois define o $ ou o operador dentro dela. O $ ou operador contém as duas expressões - “Nome: OnePlus 8 Pro” e “Garantia: $ GT: 3”. O valor do "nome" deve ser "OnePlus 8 Pro" e o valor de "garantia" deve ser maior que o valor de "3". A partir dessas expressões, uma das expressões deve ser verdadeira conforme exigido pelo $ ou operador.

dB.Móvel.FindOne (

$ ou: [
Nome: "OnePlus 8 Pro",
Garantia: $ gt: 3]

)

Dentro da saída, obtemos o único documento do findOne () que satisfaz a expressão do $ ou do operador.

Conclusão

O objetivo do artigo é explorar o método findOne () em MongoDB com a implementação do código. Aqui, vimos o funcionamento do método findOne () sem especificações de consulta e com as especificações de consulta. Em seguida, usamos o método findOne () para usar o parâmetro de projeção para exibir os campos específicos. Depois disso, encontramos o documento com o método findOne () que leva o operador condicional como os critérios de seleção.