我试图通过正则表达式条件更新数据。 当我调用此方法时,没有更新任何内容:
$collection->update(
['post_barelink' => ['$regex' => '.*shared.com' . $barelink . '$"']],
[
'ga_bounceRate' => isset($row[1]) ? $row[1] : 0,
'ga_avgSessionDuration' => isset($row[2]) ? $row[2] : 0,
'ga_pageviewsPerSession' => isset($row[3]) ? $row[3] : 0,
]);
但是当我使用
时$collection->find(['post_barelink' => ['$regex' => '.*shared.com' . $barelink . '$']])->toArray();
我从DB获得了一些结果。
如何设置update方法的条件以获得与find()
相同的结果答案 0 :(得分:0)
使用MongoRegex类来定义正则表达式条件
参考 - http://php.net/manual/en/book.mongo.php
['post_barelink' => new \MongoRegex($regexCondition)],
并且在更新函数中,last参数可用于设置更新选项ex:
['multi'=>true,'upsert'=>false]