Collection.remove()
函数用于从集合中删除文档,类似于 SQL 数据库中的 DELETE 语句。它接受一个搜索条件字符串 (SearchConditionStr) 作为参数,以指定要从集合中删除的文档(有关 SearchConditionStr 的详细说明,请参见 第 4.3.2 节“Collection.find()”)。如果未提供搜索条件字符串,或提供了空字符串,则 remove()
会返回错误。如果任何表达式在不匹配任何文档的情况下评估为 true(例如,“true
” 或 “_id IS NOT NULL
”),则会删除集合中的所有文档。
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()” 中的代码示例所示
MySQL Shell JavaScript 代码
// 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();
MySQL Shell Python 代码
# 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()
Node.js JavaScript 代码
// Use the collection 'my_collection'
var myColl = db.getCollection('my_collection');
// Remove documents by criteria
myColl
.remove('name like :name && age < :age')
.limit(1)
.bind({ name: 'N%', age: 60 })
.execute();
C# 代码
// 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();
Python 代码
# Use the collection "my_collection"
my_coll = my_schema.get_collection('my_collection')
# Remove documents by criteria
my_coll.remove("name like :name AND age < :age").limit(1).bind("name","N%").bind("age", 60).execute();
Java 代码
// Use the collection 'my_collection'
Collection 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();
C++ 代码
// Use the collection 'my_collection'
Collection 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 中的语法。