Collection.remove()
函数用于删除集合中的文档,类似于 SQL 数据库中的 DELETE 语句。它接受一个搜索条件字符串 (SearchConditionStr) 作为参数,用于指定要从集合中删除的文档(有关 SearchConditionStr 的详细说明,请参阅 第 4.3.2 节 “Collection.find()”)。如果没有提供搜索条件字符串,或者提供了一个空字符串,则 remove()
将返回错误。如果传递任何计算结果为 true 但不匹配任何文档的表达式(例如,“true
” 或 “_id IS NOT NULL
”)作为搜索条件字符串,则将删除集合中的所有文档。
可以将以下方法链接到 remove()
方法以配置删除操作:
limit(
:将要删除的文档数量限制为int
)
。int
-
sort(
:根据sortCriteriaList
)sortCriteriaList
对要删除的文档进行排序,sortCriteriaList
可以是用逗号分隔的列表或
数组。每个sortCriteria
由一个组件名称和一个搜索顺序(sortCriteria
asc
表示升序,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()
有关 EBNF 中 add()
语法的说明,另请参阅 CollectionRemoveFunction。