Consulta de MongoDB FindOne

Consulta de MongoDB FindOne
Las colecciones en MongoDB son similares a una tabla en un RDBMS. Aquí, recuperamos un determinado documento de la colección MongoDB con el método FindOne (). El método FindOne () es un método incorporado de MongoDB que devuelve un solo documento cuando se logran los criterios de consulta definidos. Si más de un documento coincide con la consulta, el primero en el orden natural es devuelto por el método FindOne (). En palabras simples, el orden de los documentos es el mismo que el orden de inserción de los documentos en la colección.

Cómo usar la consulta de FindOne en MongoDB

El método FindOne () solo devuelve el documento único del nombre de la colección dado cuando se ejecuta en el shell MongoDB. Además, el método FindOne () también toma el parámetro que incluye la expresión condicional y la proyección. El valor paramétrico se discute en el siguiente ejemplo de ejecución. Antes de esto, incrusimos los documentos dentro de la colección "Mobiles". Usamos la consulta InsertMany para agregar los documentos dentro de nuestra colección "móvil". La consulta de inserción se da en lo siguiente:

db.Móvil.insertmany ([

_id: 1,
Marca: "Oppo",
Nombre: "Oppo F21 Pro",
Garantía: "5",
Precio: 51000
,

_id: 2,
Marca: "Samsung",
Nombre: "Samsung A12",
Garantía: "2",
Precio: 45000
,

_id: 3,
Marca: "OnePlus",
Nombre: "OnePlus 8 Pro",
Garantía: "6",
Precio: 900000
,

_id: 4,
Marca: "Infinix",
Nombre: "Infinix nota 7",
Garantía: "1",
Precio: 67000
,

_id: 5,
Marca: "Vivo",
Nombre: "Vivo S1",
Garantía: "3",
Precio: 21600

])

El resultado, que se ve en la siguiente imagen, muestra que los documentos se agregan a la colección "Mobiles" con éxito. Ahora, usamos esta colección de muestras de "móviles" para mostrar el funcionamiento de la consulta de Findone para obtener el documento único.

Ejemplo 1: Uso de la consulta de FindOne en MongoDB

Aquí, invocamos el método findOne () con los parámetros vacíos solo para ver el funcionamiento del método findOne () sin ningún valor paramétrico. Tenemos una consulta en la que se da la colección "móvil" y se llama el método FindOne () a través de la colección "móvil".

db.Móvil.Encuentra uno()

La consulta de findOne (), al ejecutarse, devuelve el único y el primer documento de la colección "móvil" porque no hay una condición establecida para adquirir el documento específico. Por lo tanto, al ejecutar el método findOne () con especificaciones de consulta vacía, siempre devuelve el primer documento de la colección.

Ejemplo 2: Uso de la consulta FindOne en MongoDB proporcionando el campo

Aquí, usamos el método FindOne () con un parámetro de consulta. El parámetro de consulta se define como "Nombre:" Vivo S1 "" que encuentra el documento cuyo campo "Nombre" es igual al valor "Viva S1". Si se recuperan dos o más documentos con los mismos resultados, solo el primer documento coincidente se obtiene mediante el método FindOne (). Tenemos el siguiente método FindOne () con la especificación de consulta:

db.Móvil.findOne (nombre: "Vivo S1")

Dado que solo tenemos un documento cuyo campo "Nombre" contiene el valor "Vivo S1" en la colección "Móvil" que se ve como un documento resultante en la siguiente imagen:

Ejemplo 3: Uso de la consulta FindOne en MongoDB proporcionando el valor del campo de no existencia

Cuando el documento no coincide con las especificaciones de consulta dadas, el método findOne () devuelve el valor "nulo" en la salida. Aquí, damos una consulta dentro del método FindOne () donde establecemos los criterios "_id: 6". El campo _id se asigna con un valor de "6" que no está incluido en nuestra colección "Mobiles" de MongoDB.

db.Móvil.findOne (_ id: 6)

Como podemos ver, la cadena nula se obtiene después de ejecutar la consulta de FindOne anterior. Esto se debe a que el valor "6" _id coincide con cualquiera de los documentos de "móviles".

Ejemplo 4: Uso de la consulta FindOne en MongoDB proporcionando la proyección

El método FindOne () genera un documento que solo incluye los campos de proyección si se especifica un argumento de proyección. El parámetro de proyección aquí muestra los campos que están incluidos. Tenemos la siguiente consulta de FindOne donde establecemos los criterios "marca:" Samsung "" y luego establecemos el parámetro de proyección que incluye la expresión "Price: 1" ". El método FindOne () primero coincide con el documento con los criterios dados y luego muestra el campo "Precio" de ese documento en particular porque la proyección se establece sobre el campo "Precio". El "precio" se da con un valor "1" y el valor "1" se denota como verdadero en la proyección de MongoDB.

db.Móvil.findOne (Brand: "Samsung", precio: 1)

La consulta de FindOne coincide con el documento cuya "marca" tiene el valor "Samsung" y muestra el campo de documento "Precio" en la salida. Por defecto, el campo "_id" es el único campo que siempre se muestra al ejecutar el método findOne ().

Ejemplo 5: Uso de la consulta FindOne en MongoDB proporcionando la proyección para excluir los campos

En el ejemplo del método Findone () anterior, utilizamos el parámetro de proyección dentro del método findOne () para incluir los campos específicos. Ahora, usamos el método FindOne () para identificar el documento con los criterios coincidentes. Luego, el parámetro de proyección excluye el campo particular de ese documento. Esta explicación se puede entender fácilmente con el siguiente comando de consulta. Establecemos el método FindOne () con los criterios de selección "Brand:" OPPP ". El método FindOne () coincide con el documento de la colección "Mobiles" cuyo valor de "marca" es "OPPO". Luego, excluya los campos "_id", "nombre" y "precio" del documento coincidente porque el valor de proyección a estos campos se asigna con el valor "0" que significa falso.

db.Móvil.Encuentra uno(
Brand: "Oppo",
_id: 0, nombre: 0, precio: 0
)

Allí, tenemos un documento que se recupera como una salida de la consulta de FindOne cuya "marca" y "garantía" se muestran solo y todos los demás campos están excluidos.

Ejemplo 6: Uso de la consulta FindOne en MongoDB proporcionando el operador condicional

Este ejemplo es el método findOne () con las especificaciones de consulta como operador "$ o" condicional. El método FindOne () solo coincide con el documento que cumple con los requisitos $ o del operador. Tengamos una consulta sobre esto. Tenemos una consulta siguiente donde implementamos el método findOne () y luego establecemos el $ u operador dentro de él. El $ u operador contiene las dos expresiones: "Nombre: OnePlus 8 Pro" y "Garantía: $ GT: 3". El valor de "nombre" debe ser "OnePlus 8 Pro" y el valor de "garantía" debe ser mayor que el valor de "3". A partir de estas expresiones, una de las expresiones debe ser verdadera según lo requerido por el $ u operador.

db.Móvil.Encuentra uno(

$ o: [
Nombre: "OnePlus 8 Pro",
Garantía: $ gt: 3]

)

Dentro de la salida, obtenemos el documento único del FindOne () que satisface tanto la expresión del $ u operador.

Conclusión

El objetivo del artículo es explorar el método findOne () en MongoDB con la implementación del código. Aquí, vimos el funcionamiento del método FindOne () sin especificaciones de consulta y con las especificaciones de consulta. Luego, utilizamos el método FindOne () para usar el parámetro de proyección para mostrar los campos particulares. Después de eso, encontramos el documento con el método FindOne () que toma el operador condicional como criterios de selección.