Wir können dies tun, indem $nin
lassen Sie uns Firmen Sammlung mit 3 Datensätze
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"}
Lassen Sie haben uns Mitarbeiter Sammlung mit 3 Datensätze Unternehmen Attribut in der Mitarbeiter Sammlung bezieht sich das Dokument-ID der Unternehmen haben Sammlung, zum Testen haben wir Mitarbeiter für Firma 1 und 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}
Vor rem Wenn wir die Unternehmen ohne Mitarbeiter haben, müssen wir zuerst die Unternehmen mit Mitarbeitern finden. Um mehrere Einträge zu vermeiden lassen Sie uns distinct verwenden
db.employees.distinct("company")
[ 1, 2 ]
jetzt haben wir $ nin mit den verschiedenen Unternehmen verwendet, die Mitarbeiter, die Unternehmen zu entfernen hat, die nicht Mitarbeiter
db.companies.remove({"_id":{$nin : db.employees.distinct("company")}});
Jetzt mit, wenn wir feststellen Abfrage ausführen Auf der Firmensammlung werden wir nur zwei Aufzeichnungen bekommen.
db.companies.find();
{ "_id" : 1, "name" : "ABC Pvt Ltd", "Address" : "Chennai, India" }
{ "_id" : 2, "name" : "XYZ Pvt Ltd", "Address" : "Mumbai, India" }
Unternehmen 3 entfernt, da es keine Mitarbeiter hat
hoffe, es hilft!
http://stackoverflow.com/questions/8195190/how-to-enforce-foreign-keys-in-nosql-databases-mongodb siehe hier .. –