स्प्रिंग-डेटा के साथ, आप ऑब्जेक्ट को सहेजने के लिए कौन सा संग्रह निर्दिष्ट करने के लिए @Document एनोटेशन का उपयोग कर सकते हैं। मान लें कि मेरे पास दो वर्ग हैं, छात्र और शिक्षक, दोनों लोगों के संग्रह में बने रहे। जब मैं निम्नलिखित कोड निष्पादित करता हूं:वसंत-डेटा mongodb एक ही संग्रह में संग्रहीत कई कक्षाओं को पूछताछ
mongo.find(new Query(), Teacher.class);
परिणाम में छात्र और शिक्षक दोनों शामिल हैं। स्प्रिंग-डेटा द्वारा बनाए गए डेटा को देखते हुए, प्रत्येक दस्तावेज़ में "_class" फ़ील्ड होता है जो इंगित करता है कि यह किस वर्ग से जारी है।
यह फ़ील्ड केवल शिक्षक को वापस करने के लिए फ़िल्टर के रूप में खोजने में उपयोग नहीं किया जाता है? मैं केवल यह कर के अलावा अन्य शिक्षक के लिए कैसे क्वेरी है:
mongo.find(new Query().addCriteria(where("_class").is(Teacher.class.getCanonicalName()), Teacher.class);
धन्यवाद ओलिवर, मैं एक टिकट अगर मैं एक अच्छा समाधान के साथ आने को बढ़ा देंगे। – ltfishie
मोंगोडब जिरा के माध्यम से जाकर, मैं इस टिकट में आया https://jira.springsource.org/browse/DATAMONGO-128 जो 1.0.M3 के रूप में तय बाजार है। क्या यह अभी भी स्रोत में है? – ltfishie
हां लेकिन यह आपके परिदृश्य को छू नहीं रहा है। टिकट एक ही संग्रह के अंदर 'व्यक्ति' और 'शिक्षक' को स्टोर करने में सक्षम होता है और इससे वस्तुओं से पूछताछ करने में सक्षम होता है और 'व्यक्ति' और 'शिक्षक' तत्काल (इसलिए आवश्यक प्रकार की जानकारी) प्राप्त करता है। यह वास्तव में "केवल पढ़ने 'शिक्षक' वस्तुओं" परिदृश्य में सुधार करने पर विचार नहीं करता है। –