Я создаю приложение, и оно имеет функцию, которая удаляет элементы из массива внутри документа в коллекции MongoDB.Количество элементов в массиве
Мне нужно отключить поле массива, как только массив станет пустым сразу после операции удаления. Мне нужно сделать это, чтобы я мог различать документ с непустым массивом и документ с пустым массивом.
Например, прямо сейчас моя section
коллекция выглядит следующим образом:
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" } ] }
я применил $ тянуть операции, используя ЕГО на teachers
массиве первого документа, но мне нужен способ $unset
это когда будет пусто.
В настоящее время мне удалось создать обходной путь в Go, но мне бы хотелось уйти без каких-либо обходных решений.
Надеюсь, что здесь нет ничего тривиального.
Спасибо!
Вы хотите удалить массив 'teachers' вместе с операцией' $ pull' в одном запросе или используя два запроса? – Shrabanee
Мне нужно найти способ «mgo», чтобы узнать, что сразу после функции удаления массив 'учителей этого конкретного раздела (на котором выполнялась операция удаления) пуст или нет. Может быть, функция, которую предоставляет 'mgo', которую я могу использовать для определения размера массива, и если возвращаемый размер равен 0, я могу вызвать' $ unset' (еще раз, используя mgo). Но, если уже существует, другое более элегантное решение тоже приветствуется :) –