私は今、redactと戦っていますが、わかりません。mongodbのredactがわかりにくいようです
{
"_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:
私はちょうど
コレクション「等級」の文書はこのようになります(それはMongoDBのオンライントレーニングから来ている)ドキュメントを読んで、コレクションの等級に墨消しを使用してみました次のクエリを使用します。
db.grades.aggregate([
{ $match: { student_id: 0 } },
{
$redact: {
$cond: {
if: { $eq: [ "$type" , "exam" ] },
then: "$$PRUNE",
else: "$$DESCEND"
}
}
}
] );
このクエリでは、試験の種類ごとにこのサブ文書を除外する必要があります。
{
"_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
}
]
}
が、私は条件を反転すると、私は唯一の試験が結果に保持されていることを期待::そして、それは動作しますが、結果は
if: { $eq: [ "$type" , "exam" ] },
then: "$$DESCEND",
else: "$$PRUNE"
結果が空であるが。
「試験」タイプのサブ文書が含まれていない理由を理解できません。
もう一度mongodb大学の宿題。 – styvane
@ user3100115宿題に関する質問は、洞察を求める方法で書かれ、十分な成績を収めた完成した解決策ではなく、必ずしも悪い質問ではありません。 – Philipp
@フィリピンしかし、私は最初の手の経験から、生徒達はかなり長い方法で各ステップを教えられていることを知っています。詳細、追加するかもしれないし、ドキュメントも悪くない。私の視点から見ると、各クラスの目的は、ドキュメンテーションが多かれ少なかれリマインダになるように十分な情報を学生に与えることです。この文脈では、既存のクエリに沿った質問はちょっと... ...私にとっては恣意的なようです。 –