2017-05-23 27 views
0

我想通过正则表达式条件更新数据。 当我调用此方法没有被更新:Yii2 mongodb更新由正则表达式

$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一些成果。

我如何设置更新方法的条件来获得类似的发现)相同的结果(

+0

使用多:真,我不知道它是如何在PHP上,但你需要它:) –

+0

是的,谢谢),但它并没有解决的主要问题。无论如何,我已经找到了解决方案,而不使用更新方法中的正则表达式 –

回答

0

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

Refer- http://php.net/manual/en/book.mongo.php

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

和更新功能最后一个参数可以用来设置更新选项例如:

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