MongoDB – Consultar documentos incrustados utilizando Mongo Shell

MongoDB le proporciona operaciones de lectura para recuperar documentos incrustados/anidados de la colección o consultar una colección para un documento incrustado/anidado. Puede realizar operaciones de lectura utilizando el método db.collection.find(). Este método selecciona o visualiza documentos incrustados/anidados de la colección y devuelve el cursor al documento seleccionado.

Sintaxis: db.collection.find(filtro, proyección) 

Parámetros: 

  • filter: Es un parámetro opcional. Especifica el filtro de selección con la ayuda de operadores de consulta. Y si desea obtener todos los documentos presentes en la colección, omita estos parámetros o pase un documento vacío en el método. El tipo de este parámetro es un Documento.
  • proyección: Es un parámetro opcional. Especifica que solo esos campos regresan al documento que coincide con el filtro de consulta dado. Y si desea obtener todos los campos del documento, omita este parámetro.

Retorno: este método devuelve un cursor a los documentos que coinciden con los criterios de consulta especificados. Cuando usa el método find(), devuelve documentos, lo que significa que el método en realidad devuelve el cursor a los documentos.

Acceder a documentos incrustados/anidados –

En MongoDB, puede acceder a los campos de los documentos anidados/incrustados de la colección mediante la notación de puntos y, cuando utiliza la notación de puntos, el campo y el campo anidado deben estar entre comillas. 

Sintaxis: 

"field.nestedField": value

En los siguientes ejemplos, estamos trabajando con:

Base de datos: GeeksforGeeks 

Colección: Cursos 

Documento: tres documentos que contienen los datos de los alumnos en forma de pares campo-valor.

Coincidencia de documento incrustado/anidado –

En este ejemplo, estamos recuperando los documentos que coinciden exactamente con el documento incrustado dado. 

python

db.Courses.find({name: {first: "Rohit",
                        middle: "Kumar",
                        last: "Singh"}}).pretty()

Seleccionar documentos que coincidan con el campo anidado –

En este ejemplo, estamos recuperando los documentos que coinciden con el campo anidado especificado. 

python

db.Courses.find({"courseDetails.name": "Java Backend Development"}).pretty()

Seleccionar documentos que coincidan con el campo anidado (usando operadores de consulta) –

En este ejemplo, estamos recuperando los documentos que coinciden con el campo anidado mediante los operadores de consulta. Aquí, en la consulta, usamos el operador $in. Este operador se usa para hacer coincidir cualquiera de los valores especificados en la array dada. 

python

db.Courses.find({"name.first": {$in: ["Rohit", "Mohit"]}}).pretty()

Seleccionar documentos que coincidan con los campos anidados (usando la condición AND) –

En este ejemplo, estamos recuperando los documentos que coinciden con los campos anidados. 

python

db.Courses.find({"courseDetails.name": "Sudo GATE 2020",
                 "name.first": "Mohit"}).pretty()

Obtener los campos especificados de los documentos incrustados/anidados:

En este ejemplo, estamos recuperando campos de los documentos incrustados/anidados mediante proyección. 

python

db.Courses.find({branch: "CSE"}, {"name.first": 1,
                                  "name.last": 1}).pretty()

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *