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

संबंध संग्रह के लिए MongoDB में हटाने को कैसे प्रतिबंधित करें

हम $nin का इस्तेमाल करके ऐसा कर सकते हैं

आइए हम 3 रिकॉर्ड के साथ कंपनी संग्रह करें

db.companies.find();

{"_id":1, "name":"ABC Pvt Ltd", "Address":"Chennai, India"}
{"_id":2, "name":"XYZ Pvt Ltd", "Address":"Mumbai, India"}
{"_id":3, "name":"LMN Pvt Ltd", "Address":"Delhi, India"}

आइए हम 3 रिकॉर्ड के साथ कर्मचारियों का संग्रह करेंकर्मचारी संग्रह में कंपनी विशेषता कंपनी संग्रह की दस्तावेज़ आईडी को संदर्भित करती है, परीक्षण के लिए हमारे पास कंपनी 1 और 2 के लिए कर्मचारी हैं।

db.employees.find();

{"_id":1, "firstname":"X", "lastname":"Y", "company":1}
{"_id":2, "firstname":"A", "lastname":"B", "company":1}
{"_id":2, "firstname":"Z", "lastname":"A", "company":2}

बिना कर्मचारियों वाली कंपनियों को हटाने से पहले हमें कर्मचारियों वाली कंपनियों को ढूंढना होगा। एकाधिक प्रविष्टियों से बचने के लिए आइए हम विशिष्ट का उपयोग करें।

db.employees.distinct("company")
[ 1, 2 ]

अब हमने अलग-अलग कंपनियों के साथ $nin का उपयोग किया है, जिनके पास कर्मचारी नहीं हैं उन कंपनियों को हटाने के लिए जिनके पास कर्मचारी हैं

db.companies.remove({"_id":{$nin : db.employees.distinct("company")}});

अब अगर हम कंपनियों के संग्रह पर खोज क्वेरी निष्पादित करते हैं तो हमें केवल दो रिकॉर्ड मिलेंगे।

db.companies.find();
{ "_id" : 1, "name" : "ABC Pvt Ltd", "Address" : "Chennai, India" }
{ "_id" : 2, "name" : "XYZ Pvt Ltd", "Address" : "Mumbai, India" }

कंपनी 3 को हटा दिया गया है क्योंकि इसमें कोई कर्मचारी नहीं है

आशा है कि यह मदद करता है!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब के लिए एसक्यूएल क्वेरी?

  2. एक्सप्रेस/नोड.जेएस त्रुटि:संदर्भ त्रुटि:रेस परिभाषित नहीं है

  3. OData Jaydata - odata अद्यतन अनुरोध रिटर्न त्रुटि 404 (SAPUI5, नोड)

  4. अंतिम सरणी प्रविष्टि फ़ील्ड मान द्वारा परिणाम फ़िल्टर करें

  5. मोंगोडब के डंप को पुनर्स्थापित करने के एक ही आदेश के भीतर पूरे डेटाबेस को छोड़ दें