MongoDB批量写入更新:首先匹配部分字符串然后更新

I need to use executeBulkWrite to do the update in PHP. Before encoding in PHP, I would like to try the update in MongoDB console (V3.2).

In MongoDB console, my codes are (I would like to match the partial string then to update into the database):

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

However, there is no match:"matchedCount" : 0.

In PHP, I want to code like this,

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)
", $result->getMatchedCount());printf("Updated  %d document(s)
", $result->getModifiedCount());}

The $manager is MongoDB\Driver\Manager.

How to solve the issue? Is it correct to use $regex to match the partial string inside the update structure in bulkWrite?

douzhaishan5462
douzhaishan5462 这就是我最终找到的。stackoverflow.com/questions/34707657/...
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐