Функции Count() & Remove() в MongoDB с Пример
⚡ Умно обобщение
Функциите Count() и Remove() в MongoDB да докладва колко документа съдържа една колекция и да изтрива документи от нея. Методът count() връща общия брой документи, докато методът remove() изтрива всички документи или само тези, които отговарят на зададено условие.
MongoDB Функция Count().
Концепцията за агрегиране е да се извърши изчисление на резултатите, които се връщат в заявка. Да предположим например, че искате да знаете какъв е броят на документите в колекция според изпратената заявка, тогава MongoDB предоставя функцията count().
Пример за MongoDB Функция Count().
Нека да разгледаме един пример за това.
db.Employee.count()
Code Обяснение:
- Горният код изпълнява функцията за броене.
Ако командата е изпълнена успешно, ще се покаже следният изход
Изход:
Резултатът ясно показва, че в колекцията има 4 документа.
MongoDB Броене с условие за заявка
Методът count() е най-полезен, когато подавате условие за заявка, така че той брои само съответстващите документи, вместо цялата колекция. Това е полезно за отчети, като например колко служители принадлежат към даден отдел или колко поръчки са все още отворени.
Следният пример преброява служителите, чийто Employeeid е по-голям от 2:
db.Employee.count({Employeeid:{$gt:2}})
Ето какво се случва:
- Обектът на заявката {Employeeid:{$gt:2}} действа като филтър, използвайки оператора $gt (по-голямо от).
- count() връща само броя на документите, които отговарят на филтъра.
- Останалата част от колекцията се игнорира в общата сума.
В текущ MongoDB версии, countDocuments() е препоръчителният метод за условно броене, защото винаги връща точен резултат. Същата заявка работи и с него:
db.Employee.countDocuments({Employeeid:{$gt:2}})
И двете команди връщат едно число, което можете да съхраните в променлива или да покажете директно. Добавянето на съответстващ индекс към заявеното поле поддържа условното броене бързо в големи колекции.
Извършване на модификации
Другите два класа операции в MongoDB са изразите за актуализиране и премахване.
Операциите за актуализиране позволяват да се променят съществуващи данни, а операциите за премахване позволяват изтриването на данни от колекция.
Функция Remove() в MongoDB
In MongoDB- db.collection.remove() метод се използва за премахване на документи от колекция. Или всички документи могат да бъдат премахнати от колекция, или само тези, които отговарят на конкретно условие.
Ако просто подадете командата за премахване, всички документи ще бъдат премахнати от колекцията.
Пример за MongoDB Функция Remove().
Следният пример на код демонстрира как да премахнете конкретен документ от колекцията.
db.Employee.remove({Employeeid:22})
Code Обяснение:
- Горният код използва функцията за премахване и указва критериите, които в този случай са за премахване на документите, които имат идентификатор на служител като 22.
Ако командата е изпълнена успешно, ще се покаже следният изход
Изход:
Резултатът ще покаже, че е премахнат 1 документ.
Премахване на всички документи срещу премахване на един документ
Методът remove() може да изтрие всеки съответстващ документ или само един, в зависимост от подадените аргументи. Разбирането на разликата предотвратява случайна загуба на данни.
За да премахнете всеки документ в колекция, подайте празно условие:
db.Employee.remove({})
Това изтрива всички документи, но запазва самата колекция. За да премахнете само документи, които отговарят на условие, подайте обект на заявка, както е показано по-рано с {Employeeid:22}. Ако съвпадат няколко документа и искате да изтриете само първия, добавете опцията justOne:
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
Ключовите разлики са:
- remove({}) изтрива всички документи в колекцията.
- remove({condition}) изтрива всеки документ, който отговаря на условието.
- remove({condition}, {justOne:true}) изтрива само първия съответстващ документ.
Винаги проверявайте отново условието, преди да изпълните команда за премахване, защото празен или грешен филтър може да изчисти цялата колекция. В съвременния MongoDB, deleteOne() и deleteMany() заместват тези шаблони и правят намерението по-ясно.
Съвременни алтернативи на count() и remove()
Както count(), така и remove() са наследени методи. По-нови MongoDB Шофьорите ги маркират като остарели и предоставят по-ясни заместители. Таблицата по-долу съпоставя всеки стар метод със съвременния му еквивалент:
| Наследен метод | Модерна подмяна | Цел |
|---|---|---|
| броя() | бройДокументи() | Връща точен брой съответстващи документи |
| броя() | estimatedDocumentCount() | Връща бърз, приблизителен брой на всички документи |
| Премахване() | deleteOne() | Изтрива първия документ, който съответства на филтъра |
| Премахване() | изтриванеМного() | Изтрива всеки документ, който отговаря на филтъра |
За нови приложения, предпочитайте тези съвременни методи. Те разделят броенето от оценяването и изтриването на един документ от изтриването на много, което прави заявките по-безопасни и по-лесни за четене. Старите count() и remove() все още работят за по-стари уроци и скриптове.



