SequoiaDB 简介
安装部署
数据库实例
分布式引擎
SAC 管控中心
参考手册
常见问题及解答(FAQ)
版本信息
remove - 删除集合中的记录
db.collectionspace.collection.remove([cond], [hint], [options])
SdbCollection
该函数用于删除集合中的记录。
参数名 | 类型 | 描述 | 是否必填 |
---|---|---|---|
cond | object | 选择条件,为空时,删除所有记录,不为空时,删除符合条件的记录 | 否 |
hint | object | 指定访问计划 | 否 |
options | object | 可选项,详见 options 选项说明 | 否 |
options 选项:
参数名 | 类型 | 描述 | 默认值 |
---|---|---|---|
JustOne | boolean | 为 true 时,将只更新一条符合条件的记录 为 false 时,将会更新所有符合条件的记录 |
false |
Note:
- 参数 cond 和 hint 的用法与 find() 的相同。
- JustOne 为 true 时,只能在单个分区、单个子表上执行。
函数执行成功时,将返回一个 BSONObj 类型的对象。通过该对象获取成功删除的相关信息,字段说明如下:
字段名 | 类型 | 描述 |
---|---|---|
DeletedNum | int64 | 成功删除的记录数 |
函数执行失败时,将抛异常并输出错误信息。
remove()
函数常见异常如下:
错误码 | 错误类型 | 可能发生的原因 | 解决办法 |
---|---|---|---|
-348 | SDB_COORD_DELETE_MULTI_NODES | 参数 JustOne 为 true 时,跨多个分区或多个子表删除记录 | 修改匹配条件或不使用参数 JustOne |
当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南。
v2.0 及以上版本
删除集合所有记录
> db.sample.employee.remove()
按访问计划删除匹配 cond 条件的记录,如下操作按照索引名为"myIndex"的索引遍历集合中的记录,在遍历得到的记录中删除符合条件 age 字段值大于等于 20 的记录
> db.sample.employee.remove({age: {$gte: 20}}, {"": "myIndex"})