मैं अभी रेडक्ट के साथ लड़ रहा हूं और मुझे यह समझने की ज़रूरत नहीं है।मोंगोडब में रेडैक्ट मुझे अस्पष्ट लगता है
मैं सिर्फ डॉक्स पढ़ सकते हैं और एक संग्रह ग्रेड पर संशोधित का उपयोग करने की कोशिश की है (यह MongoDB ऑनलाइन प्रशिक्षण से आता है)
संग्रह "ग्रेड" में एक दस्तावेज़ इस तरह दिखता है:
{
"_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
}
]
}
मैं निम्न क्वेरी का उपयोग करें:
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
@ फिलिप हालांकि, मुझे पहले हाथ अनुभव से पता है कि छात्रों को प्रत्येक चरण को एक लंबे फैशन में पढ़ाया जाता है। विस्तृत, मैं जोड़ सकता हूं, और दस्तावेज खराब नहीं है, या तो। मेरे दृष्टिकोण से, यह प्रत्येक कक्षा का एक छात्र पर्याप्त जानकारी देने का लक्ष्य है ताकि दस्तावेज कम से कम एक अनुस्मारक बन जाए। उस संदर्भ में, मौजूदा क्वेरी के साथ सवाल थोड़ा सा लगता है ... ... मेरे मनमाना। –