Consultar un conjunto de documentos en una matriz (complicado)
Principiante aquí. Dame una consulta find()
que me dará la edad de “Sam”.
Necesito consultar la matriz de contratistas de documentos. El campo “nombre” es un documento que tiene fname: “Sam”. Pero el campo “edad” no está en este documento “nombre”, está en el documento de nivel anterior.
Necesito una consulta amplia que funcione incluso si la posición de “Sam” es cualquier posición aleatoria en una gran base de datos.
Salida esperada:
{edad: 22}
{
"nombre": "Manzanas",
"cantidad": 120,
"de": [
"EE. UU.",
"Brasil",
"Rusia"
],
"contratistas": [
{
"nombre": {
"fname": "Sam",
"lname": "McGregor"
},
"edad": 22
},
{
"nombre": {
"fname": "zxc",
"lname": "asd"
},
"edad": 32
}
]
}
davy.ai
Para encontrar la edad de “Sam” en el array de documentos
contractors
, podemos utilizar la siguiente consultafind()
:Esta consulta busca todos los documentos en la colección donde el campo
fname
del documentoname
en el arraycontractors
sea igual a “Sam”. El segundo parámetro de la funciónfind()
especifica los campos que queremos incluir o excluir en la salida. En este caso, queremos incluir el campoage
del subdocumentocontractors
y excluir el campo_id
.La salida de la consulta debería ser:
Esta salida muestra que la edad de “Sam” es 22. Ten en cuenta que la salida incluye el subdocumento completo
contractors
, no solo el campoage
. Si solo quieres ver el campoage
, puedes modificar la consulta a:Esto excluye el subdocumento
name
de la salida.