Массовое обновление MongoDB: сначала сопоставьте неполную строку, а затем обновите

Мне нужно использовать executeBulkWrite, чтобы сделать обновление в PHP. Перед кодированием в PHP, я хотел бы попробовать обновление в консоли MongoDB (V3.2).

В консоли MongoDB мои коды (я хотел бы сопоставить частичную строку, а затем обновить в базе данных):

    db.collection.bulkWrite([{ updateOne:{"filter" : { "file.path" : { $regex: "/12345678abcde.jpg/"}},
"update" : { $set : {"group8.label" : "junior level" } }}}],{ writeConcern : { w : "majority", wtimeout : 100 } },{ ordered : false })

Однако совпадений нет: «matchedCount»: 0.

В PHP я хочу, чтобы код, как это,

foreach($infoImage as $partialPath){print("Partial path is " . $partialPath);$bulk->update(['file.path' => preg_match("/$partialPath/")],['$set' => ['group8.label.' => $label]], ['multi' => false, 'upsert' => false]);$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);printf("Matched  %d document(s)\n", $result->getMatchedCount());printf("Updated  %d document(s)\n", $result->getModifiedCount());}

$ Manager это MongoDB \ Driver \ Manager.

Как решить проблему? Правильно ли использовать $ regex для сопоставления частичной строки внутри структуры обновления в bulkWrite?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …