Sto combattendo con la redazione in questo momento e non sono sicuro di capirlo.Redact in mongodb mi sembra oscuro
Ho appena letto la documentazione e ha cercato di usare redigere su un gradi di raccolta (si tratta di una formazione on-line MongoDB)
Un documento della collezione "gradi" si presenta così:
{
"_id" : ObjectId("50b59cd75bed76f46522c34e"),
"student_id" : 0,
"class_id" : 2,
"scores" : [
{
"type" : "exam",
"score" : 57.92947112575566
},
{
"type" : "quiz",
"score" : 21.24542588206755
},
{
"type" : "homework",
"score" : 68.19567810587429
},
{
"type" : "homework",
"score" : 67.95019716560351
},
{
"type" : "homework",
"score" : 18.81037253352722
}
]
}
I utilizzare la seguente query:
db.grades.aggregate([
{ $match: { student_id: 0 } },
{
$redact: {
$cond: {
if: { $eq: [ "$type" , "exam" ] },
then: "$$PRUNE",
else: "$$DESCEND"
}
}
}
] );
Con questa query, ogni tipo di esame viene trovato, questo documento secondario deve essere escluso. E funziona, il risultato è:
{
"_id" : ObjectId("50b59cd75bed76f46522c34e"),
"student_id" : 0,
"class_id" : 2,
"scores" : [
{
"type" : "quiz",
"score" : 21.24542588206755
},
{
"type" : "homework",
"score" : 68.19567810587429
},
{
"type" : "homework",
"score" : 67.95019716560351
},
{
"type" : "homework",
"score" : 18.81037253352722
}
]
}
ma se invertire la condizione, mi aspetto che solo gli esami sono conservati nel risultato:
if: { $eq: [ "$type" , "exam" ] },
then: "$$DESCEND",
else: "$$PRUNE"
tuttavia il risultato è vuoto.
Non capisco perché il documento secondario di tipo "esame" non sia incluso.
Ancora un altro compito di università mongodb. – styvane
@ user3100115 Le domande per i compiti a casa non sono necessariamente domande sbagliate, purché siano scritte in un modo che cerca informazioni e non solo una soluzione completa che ottiene un voto abbastanza buono. – Philipp
@Philipp Tuttavia, so per esperienza diretta che agli studenti viene insegnato ogni fase in modo piuttosto lungo. Dettagliato, potrei aggiungere, e anche la documentazione non è male. Dal mio punto di vista, è lo scopo di ciascuna delle classi di fornire allo studente informazioni sufficienti in modo che la documentazione diventi più o meno un promemoria. In quel contesto, la domanda insieme alla query esistente sembra un po '... ... arbitraria per me. –