PHP \ MongoDB \ Driver \ BulkWrite无法删除_id。$ oid对象

时间:2017-01-25 01:12:36

标签: mongodb php-7

我有一个脚本删除PHP7 \ MongoDB \ Driver上的Mongo记录

$db = new \MongoDB\Driver\Manager(".......");
$bulk = new \MongoDB\Driver\BulkWrite;
$bulk->delete(["_id":"5887e6fda69ca3797f74a4fd"], ['limit' => 1]);
$writeConcern = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $db->executeBulkWrite('theplace.here', $bulk, $writeConcern);

我也试过

...
$bulk->delete(["_id.$oid":"5887e6fda69ca3797f74a4fd"], ['limit' => 1]);
...

这适用于我发送的任何字段,它确实删除...当我想删除_id _id。$ oid时,它就不起作用,就好像它忽略而不会抛出错误一样。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:1)

将_id与ObjectId值匹配时,应使用MongoDB \ BSON \ ObjectID。由于字符串和ObjectId不能直接比较:

$bulk->delete(
    ["_id": new MongoDB\BSON\ObjectID("5887e6fda69ca3797f74a4fd")],
    ['limit' => 1]
);