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}

Преди да премахнем компаниите без служители, първо трябва да намерим компаниите със служители. За да избегнем множество записи, нека използваме distinct

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. Услугата mongodb не се стартира

  2. Как да извлечете подробностите от mongo db и да изпратите или съхраните в обект в метода nodejs Fork

  3. как да предадем променлива към регулярен израз

  4. Трябва да извлека обекта на MongoDB само с елемент от масива на filtered

  5. Как да изпълнявам монго команди чрез скриптове на шел?