使用PHP删除MongoDB中数组内的元素

使用PHP删除MongoDB中数组内的元素,php,mongodb,Php,Mongodb,我在mongoDB中有这个结构,我想使用PHP删除所有Vespertino元素: {"_id": ObjectId("5a186d574b23328df3be"),"monday": [ "Vespertino", "Matutino"],"tuesday": [ "Test1", "Matutino"],"wednesday": [ "Vespertino", "Test2"],"thursday": ["Test3","Matutino"],"friday": ["Vespertino","

我在mongoDB中有这个结构,我想使用PHP删除所有Vespertino元素:

{"_id": ObjectId("5a186d574b23328df3be"),"monday": [
"Vespertino",
"Matutino"],"tuesday": [
"Test1",
"Matutino"],"wednesday": [
"Vespertino",
"Test2"],"thursday": ["Test3","Matutino"],"friday": ["Vespertino","Matutino"],"saturday": ["Matutino"],"sunday": [],"id":"30334798","c_code": "my_company"}
我试图首先获得结果,然后删除元素,但我只得到空结果,这是我迄今为止的尝试:

$query_shifts = array('c_code'=>"my_company","wednesday.Vespertino"=> array('$exists' => true)); 
mongodb查询是:

db.CollectionName.update({"_id": ObjectId("5a186d574b23328df3be")}, {
    {$pull: {monday: "Vespertino", tuesday: "Vespertino", wednesday: "Vespertino", thursday: "Vespertino", friday: "Vespertino", saturday: "Vespertino", sunday: "Vespertino"} },
    { multi: true }
});
在PHP中:

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(["_id" => new MongoDB\BSON\ObjectId("5a186d574b23328df3be")], [$pull => ['monday' => "Vespertino", 'tuesday' => "Vespertino", 'wednesday' => "Vespertino", 'thursday' => "Vespertino", 'friday' => "Vespertino", 'saturday' => "Vespertino", 'sunday' => "Vespertino"]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('dbName.CollectionName', $bulk);

我希望能帮助您。

看一看:,尝试使用array_slice或unset噢no no@MiguelCruz,我需要从MongoDB文档中删除元素。谢谢你,谢谢!您的解决方案工作完美!这是我在PHP中的最后一段代码:$r=$col->updatearray'c_code'=>my_company,数组'$pull'=>数组'monday'=>vespertino,'周二'=>vespertino,'周三'=>vespertino,'friday'=>vespertino,'saturday'=>vespertino,数组'multiple'=>true;对您的最终代码正确,可以从集合的所有文档中删除所有“vespertino”项。