Ich bin eine Anwendung erstellen, und es hat eine Funktion, die Elemente aus einem Array in einem Dokument in einer MongoDB-Sammlung entfernt.Count Anzahl der Elemente in einem Array
Ich brauche eine Möglichkeit, das Array-Feld zu deaktivieren, sobald das Array direkt nach einem Entfernen-Vorgang leer wird. Ich muss das tun, damit ich zwischen einem Dokument unterscheiden kann, das ein nicht leeres Feld hat, und einem Dokument, das ein leeres Feld hat.
Zum Beispiel gerade jetzt meine section
Sammlung wie folgt aussieht:
db.section.find({})
{ "_id" : ObjectId("57a0a38ad1c6ef24376477c5"), "sectionid" : "BTE4B",
"sectionname" : "BTech 4B", "year" : 4,
"session" : 2016, "courseid" : "BTE-CS", "password" : "pm8xTE0-",
"students" : 35, "addedon" : "2016-08-02 19:13:38", "teachers" : [ ] }
{ "_id" : ObjectId("57a0a96bd1c6ef24376477cd"), "sectionid" : "BTE4D",
"sectionname" : "BTech 4D", "year" : 4, "session" : 2016, "courseid" :
"BTE-CS", "password" : "sHhKr0Ov", "students" : 41, "addedon" :
"2016-08-02 19:38:43", "teachers" : [ { "facultyid" : "CS-102",
"subjectid" : "CS-ALGO" } ] }
ich ein $ zieht Betrieb mit mgo auf dem teachers
Array des ersten Dokuments angelegt hatte, aber ich brauche einen Weg $unset
es wenn es leer wird.
Derzeit habe ich es geschafft, eine Problemumgehung in Go zu erstellen, aber ich möchte ohne jede Umgehungslösung wegkommen.
Ich hoffe, dass ich hier nicht etwas sehr Triviales verpasse.
Dank!
Sie möchten "Lehrer" -Array zusammen mit $ Pull Operation in einer Abfrage entfernen oder zwei Abfragen verwenden? – Shrabanee
Ich brauche einen Weg in 'mgo', um herauszufinden, dass das' Lehrer'-Array dieser bestimmten Sectionid (auf dem die Remove-Operation ausgeführt wurde) gleich nach einer remove-Funktion leer ist oder nicht. Vielleicht eine Funktion, die 'mgo' bereitstellt, mit der ich die Größe des Arrays bestimmen kann, und wenn die zurückgegebene Größe 0 ist, kann ich '$ unset' aufrufen (noch einmal mit mgo). Aber, wenn vorhanden, einige andere elegante Lösung ist auch willkommen :) –