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'
var myColl = db.getCollection('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.