मोंगोडीबी में, आप अप्सर्ट करने के लिए db.collection.save({_id:'abc'}, objectToSave)
का उपयोग कर सकते हैं।MongoDB db.collection.save ऑब्जेक्ट ओवरराइट करें जब मौजूदा
के
{_id:'abc', field1:1, field2:2};
मेरे संग्रह में नीचे के रूप में objectToSave परिभाषित करते हैं, मैं पहले से ही नीचे के रूप में एक ही _ id मूल्य के साथ एक दस्तावेज़ है है को बचाने के समारोह ऊपर में मौजूदा दस्तावेज़ का स्थान ले लेगा
{_id:'abc', field3:3};
{_id:'abc', field1:1, field2:2};
जो मैं चाहता हूं वह $ सेट ऑपरेशन करना है
{_id:'abc', field1:1, field2:2, field3:3};
क्या यह सहेजने के कार्य में प्राप्त किया जा सकता है या मुझे अलग-अलग अपडेट स्टेटमेंट लिखना है?
ध्यान दें कि ऑब्जेक्ट ToSave के फ़ील्ड गतिशील हैं। मैं जिस भाषा का उपयोग कर रहा हूं वो नोड.जेएस है।
मार्कस, मैं एक बात का उल्लेख करना भूल गया, ऑब्जेक्ट में फ़ील्ड की सूची अनिश्चित है। इसलिए मैं अद्यतन का उपयोग नहीं कर सकता और विशिष्ट फ़ील्ड के साथ $ सेट का उपयोग नहीं कर सकता। मैं नोड.जेएस का उपयोग कर रहा हूँ – Lee
ऐसा क्यों? आप खेतों की मनमानी संख्या पर सेट का उपयोग कर सकते हैं। एक ऑब्जेक्ट बनाएं, इसे '$ set' के मान के रूप में पास करें और आप जाने के लिए अच्छे हैं। –
ऑब्जेक्ट टोवसेव में _id फ़ील्ड है और _id मान संग्रह में मौजूद होने की पुष्टि नहीं है। $ सेट _id फ़ील्ड पर अपडेट की अनुमति नहीं देगा। – Lee