Функции Count() и Remove() в MongoDB с примером
⚡ Умное резюме
Функции Count() и Remove() в MongoDB Метод `count()` сообщает, сколько документов содержит коллекция, и удаляет из неё документы. Метод `count()` возвращает общее количество документов, а метод `remove()` удаляет все документы или только те, которые соответствуют заданному условию.

MongoDB Функция подсчета()
Концепция агрегации заключается в выполнении вычислений на основе результатов, возвращаемых запросом. Например, предположим, что вы хотите узнать, сколько документов в коллекции согласно запущенному запросу, затем MongoDB предоставляет функцию count().
Пример MongoDB Функция подсчета()
Давайте посмотрим на пример этого.
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.коллекция.удалить() метод используется для удаления документов из коллекции. Из коллекции можно удалить либо все документы, либо только те, которые соответствуют определенному условию.
Если вы просто введете команду удаления, все документы будут удалены из коллекции.
Пример MongoDB Функция Удалить()
В следующем примере кода показано, как удалить определенный документ из коллекции.
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 Водители помечают их как устаревшие и предлагают более понятные замены. В таблице ниже приведено соответствие каждого старого метода его современному аналогу:
| Устаревший метод | Современная замена | Цель |
|---|---|---|
| count () | countDocuments() | Возвращает точное количество соответствующих документов. |
| count () | estimatedDocumentCount() | Возвращает приблизительное количество всех документов. |
| Удалить() | удалитьОдин() | Удаляет первый документ, соответствующий фильтру. |
| Удалить() | удалитьМного() | Удаляет все документы, соответствующие фильтру. |
Для новых приложений предпочтительнее использовать эти современные методы. Они разделяют подсчет и оценку, а также удаление одного документа от удаления множества, что делает запросы более безопасными и удобными для чтения. Устаревшие функции count() и remove() по-прежнему работают в старых руководствах и скриптах.


