我有一个脚本删除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时,它就不起作用,就好像它忽略而不会抛出错误一样。
任何帮助都非常感激。
答案 0 :(得分:1)
将_id与ObjectId值匹配时,应使用MongoDB \ BSON \ ObjectID。由于字符串和ObjectId不能直接比较:
$bulk->delete(
["_id": new MongoDB\BSON\ObjectID("5887e6fda69ca3797f74a4fd")],
['limit' => 1]
);