2014-09-19 7 views
5

मैं वसंत MongoDB के साथ काम कर रहा हूं और अब मुझे एक सरणी सूची में मूल्य डालने के लिए एक समस्या का सामना करना पड़ रहा है। यहाँ मेरी POJO वर्ग संरचना ...mongodb में बाहरी सरणीकरण को अद्यतन करते समय आंतरिक सरणी में मूल्य कैसे सम्मिलित करें?

public class Search implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    private String id; 
    private String searchkey; 
    private ArrayList<Lead> leads; 
} 

"लीड" एक और POJO वर्ग जो की तरह है ...

public class Lead implements Serializable { 

private static final long serialVersionUID = 1L; 
private String leadtext; 
private String address; 
private ArrayList<History> trackrecords; 
} 

"इतिहास" परागकोष POJO वर्ग जो की तरह है ..

है
public class History implements Serializable { 

private static final long serialVersionUID = 1L; 
private String id; 
private String changedfield; 
private String oldvalue; 
private String newvalue; 
} 

और समस्या यह है कि मैं एक लीड को अपडेट करते समय ट्रैक्रेकॉर्ड्स में डेटा डालना चाहता हूं। वसंत mongotemplate में यह संभव है .. ?? यदि यह संभव है तो कृपया मेरी मदद करें। एक मौजूदा ArrayList में अग्रिम रूप से धन्यवाद

+0

अद्यतन ऑपरेशन के लिए आपकी क्वेरी स्थिति वास्तव में क्या है? – Wizard

+0

यह इतिहास एक लीड संपादित करने का एक ट्रैकर है ... यदि मैं किसी लीड क्लास में कुछ भी अपडेट करता हूं, तो मुझे उस ट्रैकरेकॉर्ड में मान डालना होगा। उदाहरण के लिए यदि मैं लीडटेक्स्ट को अद्यतन करता हूं तो मुझे ट्रैकरेकॉर्ड्स में वैल्यू चेंजफील्ड के साथ मूल्यों को लेना होगा क्योंकि लीडटेक्स्ट और पुरानाव्यू पुराने लीडटेक्स्ट वैल्यू और नए लीडटेक्स्ट वैल्यू के रूप में नया मान है। –

+0

आप अपने जावा कक्षाओं के बजाय अपने डेटा के JSON प्रतिनिधित्व पोस्ट करके व्यापक दर्शकों तक पहुंचेंगे। लेकिन ऐसा लगता है कि आप किसी अन्य के अंदर किसी सरणी की सामग्री को अपडेट करने के लिए कह रहे हैं, और दस्तावेज़ीकरण आपको बताएगा कि यह ज्यादातर मामलों में नहीं किया जा सकता है। यदि आप अभी भी कोशिश करना चाहते हैं तो डेटा और थोड़ा और स्पष्टीकरण। –

उत्तर

4

इस प्रयास करें।

मान लीजिए leadtext उस lead तत्व को विशिष्ट रूप से ढूंढ सकता है।

Query query = new Query().addCriteria(Query.where("searchkey").is(searchkey).and("leads.leadtext").is(leadtext)); 
Update update = new Update().push("leads.$.trackrecords", trackrecord); 
mongoTemplate.updateFirst(query, update, Search.class); 
2

उपयोग MongoDB $ डालने के लिए या धक्का अद्यतन

+0

मैंने इन तकनीकों का प्रयास किया है लेकिन काम नहीं कर रहा है .. –

संबंधित मुद्दे