2017-05-23 48 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]