/ / MongoDB में आंतरिक दस्तावेज़ विशेषता के मूल्यों को कैसे प्राप्त करें? - जावा, मोंगोडब

MongoDB में आंतरिक दस्तावेज़ विशेषता के मूल्य कैसे प्राप्त करें? - जावा, मोंगोडब

मैं mongoDB के लिए नया हूं। मैं वेब ऐप में mongoDB का उपयोग कर रहा हूं।

मैं जानना चाहता हूं कि किसी दस्तावेज़ की आंतरिक दस्तावेज़ विशेषता का मूल्य कैसे प्राप्त किया जाए।

आइए बताते हैं कि मेरा JSON कैसा है,

{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"}, "Attrr1" : "value1", "Attr2": {"innerAttr1":"innerValue1", "innerAttr2":"innerValue2"}, "Attr3" : { "innerAttr3" : "innerValue3", "innerAttr4" : "innerValue4"} }

उपरोक्त जसन के लिए, मैं कैसे प्राप्त कर सकता हूं innerValue1 और दोनों innerValue1 और innerValue2.

मैंने यह कोशिश की, लेकिन इसका मेरे लिए काम नहीं कर रहा !!!

BasicDBObject innerQuery = new BasicDBObject();
field.put("Attr2.innerAttr1", 1);

किसी भी सुझाव की सराहना की जाएगी !!!

धन्यवाद

उत्तर:

जवाब के लिए 2 № 1

मैं तुम्हें नहीं मिल रहा हूँ आपको कुछ दस्तावेज़ के अंदर मूल्य प्राप्त करने या सेट करने या संग्रह में जोड़ने की आवश्यकता है?

जैसा कि मैंने आपको जावा में mongo db के लिए कुछ ड्राइवर का उपयोग करने के बारे में समझा। मुझे जावा के लिए मोंगो ड्राइवर का अनुभव नहीं है। लेकिन मुझे पता है कि ड्राइवर या c # में ऐसा करना है:

सी में # मोंगो ड्राइवर अद्यतन के लिए आंतरिक संपत्ति संग्रह में आपको निम्नलिखित करने की आवश्यकता है:

var query = Query.Eq("_id", documentId);
var update = Update.Set("Attr2.innerAttr1",1);

MongoDb.Database.GetCollection("collectionName").Update(query, update);

यदि उपर्युक्त कोड से क्वेरी एक दस्तावेज़ से निकलती है -Attr2 संग्रह से आंतरिक संपत्ति 1 अद्यतन होगी। अगर मुझे पता है कि क्वेरी एक से अधिक दस्तावेज़ों में वापस आती है और मुझे एक और दस्तावेज़ को अपडेट करने की आवश्यकता है, तो मुझे ऐसे कोड का उपयोग करना चाहिए:

MongoDb.Database.GetCollection("collectionName").Update(query, update, UpdateFlag.Multi);

मुझे लगता है कि जावा के लिए मोंगो चालक में एक ही तर्क।

उममीद है कि इससे मदद मिलेगी।


जवाब के लिए 0 № 2

चूंकि उत्तर पोस्ट नहीं किया गया था और मुझे सिर्फ उत्तर मिला, यहाँ यह है

(BasicDBObject)(query.get("Attr2")).getString("InnerAttr1")
where query = (BasicDBObject) cursor.next()

स्टैकओवरफ्लो पर क्रेडिट एक और पोस्ट पर जाता है।