文档中心

remove()

语法

db.collectionspace.collection.remove([cond], [hint], [options])

删除集合中的记录。

参数描述

参数名 参数类型 描述 是否必填
cond Json 对象 选择条件。为空时,删除所有记录,不为空时,删除符合条件的记录。
hint Json 对象 指定访问计划。
options Json 对象 可选项,详见options选项说明。

options选项

参数名 参数类型 描述 默认值
JustOne bool 为 true 时,将只更新一条符合条件的记录。
为 false 时,将会更新所有符合条件的记录。
false

Note:

  • 参数condhint的用法与 find() 的相同。

  • JustOne为 true 时,只能在单个分区、单个子表上执行。

返回值

  • 成功返回详细结果信息(BSONObj 对象),结构如下:

    {
        DeletedNum : <INT64>  成功删除的记录数
    }
  • 出错抛异常,并输出错误信息,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误信息码。错误信息对象包括详细结果信息。

错误

错误信息记录在节点诊断日志(diaglog)中,可参考错误码

错误码 可能的原因 解决方法
-346 JustOne 跨多个分区或者多个子表 修改匹配条件,或者不使用 JustOne

示例

  • 删除集合所有记录

    > db.foo.bar.remove()
  • 按访问计划删除匹配 cond 条件的记录,如下操作按照索引名为“myIndex”的索引遍历集合中的记录,在遍历得到的记录中删除符合条件 age 字段值大于等于20的记录。

    > db.foo.bar.remove( { age: { $gte: 20 } }, { "": "myIndex" } )
回到顶部