2012-11-11 10 views
5

में अप्सर्ट क्या मोंगोइड में अपरर्ट (यदि मौजूद नहीं है) बनाने का एक अंतर्निहित तरीका है? या मुझे यह जांचना चाहिए कि कोई आइटम पहले मौजूद है या उसके बाद केवल सम्मिलित/अपडेट करें?मोंगोइड

उत्तर

2

पहले से ही

मॉडल # Upsert दस्तावेज़ पर एक MongoDB Upsert निष्पादित करता है वहाँ Mongoid में निर्मित एक Upsert विधि है। यदि डेटाबेस में दस्तावेज़ मौजूद है, तो यह स्मृति में दस्तावेज़ के वर्तमान विशेषताओं के साथ ओवरराइट हो जाएगा। यदि दस्तावेज़ डेटाबेस में मौजूद नहीं है, तो इसे सम्मिलित किया जाएगा। ध्यान दें कि यह केवल {पहले | बाद | आस-पास} _upsert कॉलबैक चलाता है।

http://mongoid.org/en/mongoid/docs/persistence.html

+0

से लिया has_many के लिए यह करने के लिए कैसे। मान लीजिए उपयोगकर्ता के पास कई पुस्तकें हैं, मैं चाहता हूं कि उपयोगकर्ता की किताबें अपडेट हो जाएं, जोड़ दें, संशोधित हों? User.first.upsert (: books_attributes =>?) ??? – user1735921

+0

@ user1735921it थोड़ी देर के बाद से मैंने मोंगोडीबी का उपयोग किया है, लेकिन वर्तमान दस्तावेज़ों पर एक त्वरित रूप से पता चलता है - https://docs.mongodb.com/ruby-driver/master/tutorials/ruby-driver-bulk-operations/# अद्यतन-कई – gef