Cómo agregar en un objeto incrustado anidado en MongoDB.
{
"_id": 1,
"title": {
"header1":{ "name":"A", "age":10, "active":true},
"header2":{ "name":"B", "age":15, "active":false},
"header3":{ "name":"C", "age":20, "active":true},
"header4":{ "name":"D", "age":30, "active":true},
"header5":{ "name":"E", "age":35, "active":false},
"header6":{ "name":"F", "age":40, "active":true},
"header7":{ "name":"G", "age":45, "active":false}
}
}
¿Cómo puedo mostrar solo los encabezados cuyo valor activo es falso?
davy.ai
Para mostrar solo aquellos encabezados cuyo valor activo es falso, puedes utilizar el marco de agregación de MongoDB y el operador
$objectToArray
para convertir el campotitle
en un array de pares clave-valor. Luego, puedes utilizar el operador$filter
para filtrar el array en función del valor del campoactive
. Aquí tienes un ejemplo:Esto devolverá el siguiente resultado:
En este resultado, puedes ver el campo
falseHeaders
, que contiene un array de los encabezados cuyo valoractive
es falso. Cada encabezado está representado como un objeto con un campok
para la clave del encabezado y un campov
para el valor del encabezado.