sql >> Database >  >> NoSQL >> MongoDB

Hoe het verwijderen in MongoDB te beperken voor het verzamelen van relaties

We kunnen dit doen met $nin

laat ons een verzameling bedrijven hebben met 3 records

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"}

Laten we een werknemersverzameling hebben met 3 recordscompany-attributen in de werknemersverzameling verwijst naar de document-ID van de bedrijvenverzameling, voor het testen hebben we werknemers voor bedrijf 1 en 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}

Voordat we de bedrijven zonder werknemers verwijderen, moeten we eerst de bedrijven met werknemers vinden. Om meerdere invoer te vermijden, laten we distinct gebruiken

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

nu hebben we $nin gebruikt met de verschillende bedrijven die werknemers hebben om de bedrijven te verwijderen die geen werknemers hebben

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

Als we nu een zoekopdracht uitvoeren voor de verzameling van bedrijven, krijgen we slechts twee records.

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

bedrijf 3 is verwijderd omdat het geen werknemers heeft

Ik hoop dat het helpt!




  1. Mongoose/NextJS - Model is niet gedefinieerd / Kan model niet overschrijven nadat het is gecompileerd

  2. PyMongo:Wat gebeurt er met de cursor wanneer no_cursor_timeout=True

  3. Node js Mongodb Query NumberLong

  4. Automatische verwijdering van documenten van mongodb na een opgegeven tijd