4.3.4 Collection.remove()
Функция Collection.remove() предназначена для удаления документов в коллекции, аналогично оператору для базы данных SQL. Она принимает строку условия поиска (SearchConditionStr) в качестве параметра для указания документов, которые должны быть удалены из коллекции (подробное объяснение SearchConditionStr можно найти в разделе 4.3.2, «Collection.find()»). remove() возвращает ошибку, если строка условия поиска не указана или является пустой. Все документы в коллекции удаляются, если в качестве строки условия поиска передано любое выражение, которое вычисляется как истинное, не сопоставляясь ни с одним документом (например, «true» или «_id IS NOT
NULL»).
К функции remove() можно прицепить следующие методы для настройки удаления:
limit(: Ограничивает количество удаляемых документов доint).int-
sort(: Сортирует порядок удаления документов в соответствии сsortCriteriaList)sortCriteriaList, которое представляет собой либо список, разделенный запятыми, либо массив. КаждыйsortCriteriaсостоит из имени компонента и порядка сортировки (sortCriteriaascдля возрастающей сортировки илиdescдля убывающей сортировки). Например:sort('name asc', 'age desc')sort(['name asc', 'age desc'])
Этот метод обычно используется в сочетании с методом
limit()для определения того, какие из документов, соответствующих строке условия поиска, должны быть удалены.
Поддержка привязки параметров с помощью bind(), и функция execute() запускает фактическое выполнение операции удаления. Следующий пример демонстрирует использование функции Collection.remove(). Предполагается, что некоторые документы были добавлены в коллекцию, как показано в примере кода в разделе 4.3.1, «Collection.add()»:
# Use the collection 'my_collection'
myColl = db.get_collection('my_collection')
# Remove documents by criteria
myColl.remove('name like :name AND age < :age') \
.limit(1).bind('name','N%').bind('age', 60).execute()
См. также CollectionRemoveFunction для синтаксиса add() в EBNF.
© 2025 Oracle
Licensed under the GPLv2 License.