$ in requiere una matriz como segundo argumento, encontrado: falta
¿Alguien puede decirme qué estoy haciendo mal?
structura del documento @db:
{
"_id" : "module_settings",
"moduleChildren" : [
{
"_id" : "module_settings_general",
"name" : "General",
},
{
"_id" : "module_settings_users",
"name" : "Users",
},
{
"_id" : "module_settings_emails",
"name" : "Emails",
}
],
“permissions” : [
"module_settings_general",
"module_settings_emails"
]
}
etapa de tubería:
{ $project: {
filteredChildren: {
$filter: {
input: "$moduleChildren",
as: "moduleChild",
cond: { $in : ["$moduleChild._id", "$permissions"] }
}
},
}}
Necesito filtrar la matriz "moduleChildren" para mostrar solo los módulos qué identificadores están en la matriz "permisos". He intentado "$ ROOT.permissions" y "$ CURRENT.permissions" pero ninguno de ellos funciona. Siempre recibo un error de que $ en falta una matriz como argumento. Funciona cuando codifico la matriz de esta manera:cond: { $in : ["$$moduleChild._id", [“module_settings_general", "module_settings_emails”]] }
por lo que parece que el problema está en pasar la matriz. ¡Gracias por cualquier consejo!