文档首页
X DevAPI 用户指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


X DevAPI 用户指南  /  ...  /  Collection.remove()

4.3.4 Collection.remove()

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()” 中的代码示例所示

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 中的语法。