हाँ, उपरोक्त कोड पूरी तरह से ठीक काम करता है। अब मुझे पता है कि मेरी त्रुटि कहाँ थी। मैं इसे बुलेट-प्रूफ करना चाहता था, इसलिए मैंने सोचा कि अंत में DBCollection पर सेव () का उपयोग करना और खरीदारी सूची को स्पष्ट रूप से सहेजना सबसे अच्छा होगा DBObject:
shoppingLists.save( shoppingList );
अब मैं किसी अन्य फ़ोरम में पढ़ता हूं कि डेटाबेस से आपके द्वारा पुनर्प्राप्त की जाने वाली वस्तुओं को बाद में डेटाबेस के साथ सिंक नहीं किया जाता है (अब मेरे लिए तार्किक लगता है :))। इसलिए मैंने हर बार बदलावों को खुद ही लिखा। ऊपर की रेखा को हटाने के बाद इसने काम किया :)
तो एक महत्वपूर्ण नियम:जब आप अपना DBCollection update अपडेट करते हैं - यह सीधे डेटाबेस में भेजा जाता है! - DBObject सेव न करें कि आपने अपडेट से पहले पूछताछ की थी! यह आपके अपडेट को अधिलेखित कर देगा!