MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कई-से-अनेक संबंध प्रपत्र SQL को mongoDB संग्रह में कैसे परिवर्तित करें?

मुझे आपकी समस्या के कई समाधान दिखाई दे रहे हैं:

शायद ही कभी अपडेट

जुड़ने से बचने के लिए, जिसे NoSQL डेटाबेस में क्लाइंट-साइड करना पड़ता है, सब कुछ एक संग्रह में डाल दें। यदि आप बहुत बार अपडेट नहीं करते हैं, तो आप कर सकते हैं

{
   _id,
   LastAccessDate,
   HasException,
   Account : {
        AccountID,
        UserName,
        Email },
   Device : {
        DeviceID,
        DeviceCode }
}

इसका परिणाम डुप्लिकेट डेटा में होता है, लेकिन यदि मेमोरी दक्षता से पहले प्रदर्शन (कोई जुड़ाव नहीं) आता है, तो यह शायद आपके लिए एक उपयुक्त समाधान है। चूंकि डेटा कई बार संग्रहीत किया जाता है, इसलिए सर्वर के लिए अपडेट की अधिक मांग होती है। अर्थात। ईमेल पता अपडेट करना कुछ इस तरह दिखेगा

db.myColl.update({"Account.UserName" : "User ToUpdate"}, {"$set" : {"Account.Email" : "[email protected]"} });

चूंकि अब आपको शामिल होने के लिए AccountID और DeviceID की आवश्यकता नहीं है, आप इन दो क्षेत्रों को भी छोड़ सकते हैं।

अक्सर अपडेट

जब आपके पास लगातार अपडेट होते हैं, तो एम्बेड करने के बजाय, आप संदर्भों का उपयोग कर सकते हैं। मुझे लगता है कि आपको उन्हें क्लाइंट-साइड हल करना होगा। तब आपके पास तीन संग्रह होंगे:

खाता:

{
  _id,
  UserName,
  Email
}

डिवाइस:

{
  _id,
  DeviceCode
}

एसोसिएशन:

{
  _id,
  account : {
        "$ref" : "Account",
        "$id" : ... }
  device : {
        "$ref" : "Device",
        "$id" : ... }
}

इस तरह आपके पास कोई दोहराव नहीं है, लेकिन आपको संदर्भों से निपटना होगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कैसे वसंत डेटा mongorepository विधि का उपयोग कर केवल चयनित मोंगो आईडी लाने के लिए?

  2. MongoDB ड्राइवर में घटनाओं को फिर से जोड़ने के लिए सुनें

  3. मैं mongodb में _id द्वारा रिकॉर्ड क्यों नहीं ढूंढ पा रहा हूं?

  4. नेवला समुच्चय कैसे एक सरणी में एकाधिक संग्रह मैप करने के लिए?

  5. नेवला और अद्वितीय क्षेत्र