$redact
fáze začíná v kořenovém dokumentu a jeho polích a pouze tehdy, když tento dokument splňuje podmínku $$DESCEND
, přezkoumá dílčí dokumenty obsažené v tomto dokumentu. To znamená, že první věc, kterou $redact udělá s vaším dokumentem, je prozkoumat toto:
{
"_id" : ObjectId("50b59cd75bed76f46522c34e"),
"student_id" : 0,
"class_id" : 2,
"scores" : [] // Some array. I will look at this later.
}
Nenajde ani type
pole zde, takže $eq: [ "$type" , "exam" ]
je nepravdivé. Co jste řekli $redact, aby udělal, když je podmínka nepravdivá? else: "$$PRUNE"
, takže celý dokument je před prozkoumáním dílčích dokumentů oříznut.
Jako náhradní řešení otestujte, zda $type
je buď "exam"
nebo neexistuje. Explicitně jste nežádali o funkční řešení, takže to nechám jako cvičení na vás, abyste zjistili, jak to udělat.