4.3.4 集合.remove()

Collection.remove()函数用于删除集合中的文档,类似于 SQL 数据库的 DELETE语句。它采用搜索条件字符串 ( SearchConditionStr ) 作为参数来指定应从集合中删除的文档(SearchConditionStr 的详细说明 可以第 4.3.2 节“Collection.find()”中找到)。remove() 如果未提供搜索条件字符串或提供空字符串,则返回错误。如果任何表达式在不匹配任何文档的情况下计算为真(例如,“ true”或“_id IS NOT NULL") 作为搜索条件字符串传递。

以下方法可以链接到 remove()配置删除的方法:

  • limit(int): 将要删除的文档数限制为 int

  • sort(sortCriteriaList): 将文档删除的顺序按照 排序,sortCriteriaList可以是逗号分隔的列表,也可以是 的数组 sortCriteria。每个都 sortCriteria 包含一个组件名称和一个搜索顺序(asc升序或 desc降序)。例如:

    • sort('name asc', 'age desc')

    • sort(['name asc', 'age desc'])

    该方法通常与 limit()确定删除与搜索条件字符串匹配的文档中的哪些文档的方法结合使用。

bind()还支持 参数绑定using ,execute()函数触发remove操作的实际执行。以下示例显示了如何使用该 Collection.remove()函数。它假定某些文档已添加到集合中,如第 4.3.1 节“Collection.add()”中的代码示例所示:

MySQL 外壳 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 外壳 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 了解 EBNF 中的语法add()