如何使用MongoDB\Driver\BulkWrite::delete删除集合所有文档?
解决MongoDB\Driver\BulkWrite::delete删除所有文档的参数问题
首先,你遇到的报错大概率是代码存在语法解析问题,或者对参数传递的细节处理有误。正确传递“空断言”(匹配所有文档)的方式如下:
正确代码示例
$bulk = new MongoDB\Driver\BulkWrite(); // 传递空数组作为过滤条件,匹配集合内所有文档 $bulk->delete([]); // 也可以使用空对象,效果完全一致 // $bulk->delete((object)[]); $mongo->executeBulkWrite("db.collection", $bulk);
额外说明
- 报错根源排查:你提供的代码末尾有一个多余的反引号(`),这会触发PHP语法解析错误,进而可能导致参数传递的异常判定,务必删除这个多余符号。
- 显式指定删除范围:如果需要更清晰地表明是删除所有文档,可以在第二个参数中显式设置
limit为0(默认值就是0,此步骤可选):$bulk->delete([], ['limit' => 0]); - 参数规则确认:
MongoDB\Driver\BulkWrite::delete的第一个参数是必填的过滤条件,空数组或空对象都会被MongoDB视为匹配所有文档的断言,这完全符合官方文档的描述。
内容的提问来源于stack exchange,提问作者CKee
相关产品推荐
相关产品推荐

