由正则表达式更新Yii2 mongodb

时间:2017-05-23 08:41:53

标签: php mongodb yii2

我试图通过正则表达式条件更新数据。 当我调用此方法时,没有更新任何内容:

$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()

相同的结果

1 个答案:

答案 0 :(得分:0)

使用MongoRegex类来定义正则表达式条件

参考 - http://php.net/manual/en/book.mongo.php

['post_barelink' => new \MongoRegex($regexCondition)],

并且在更新函数中,last参数可用于设置更新选项ex:

['multi'=>true,'upsert'=>false]