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