Удалить элемент внутри массива в MongoDB с помощью PHP

У меня есть эта структура в mongoDB, и я хочу удалить все элементы Vespertino с помощью PHP:

{"_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)); 

Взгляните: stackoverflow.com/questions/369602/… попробуйте использовать array_slice или отключить

mindmaster 25.02.2019 21:03

о нет, нет, @MiguelCruz, мне нужно удалить элементы из документа MongoDB. Спасибо, в любом случае.

Fernando Rivero 25.02.2019 21:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

запрос 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);

Я надеюсь помочь вам.

Спасибо! ваше решение работает идеально! Это мой окончательный код в PHP: $r = $col->update(array('c_code'=>"my_company"),array('$pull'=>ar‌​ray('monday'=>"vespe‌​rtino ",'вторник'=>"v‌​espertino",'wednesda‌​y'=>"вечерний",'th‌​ursday'=>"вечерний‌​",'пятница'=>"вечерний‌​ино",'суббота' =>"ve‌​spertino",'sunday'=>‌​"vespertino")),array‌​('multiple' => true) );

Fernando Rivero 25.02.2019 22:57

Да; Ваш окончательный код подходит для удаления всех предметов «веспертино» из всех документов вашей коллекции.

Mehdiable 26.02.2019 14:07

Другие вопросы по теме