2017-09-06 43 views
0

我正在使用MongoDB PHP庫來處理mongodb數據。如何刪除兩個字段具有不同值的文檔

文檔:https://docs.mongodb.com/php-library/master/tutorial/crud/

我想刪除這兩個領域有不同的值的記錄,例如:

有一個集合:

$collection = [ 
     ['_id' => 'xxx', 'name_from_card' => 'foo', 'name_from_passport' => 'fooo'], 
     ['_id' => 'xxx', 'name_from_card' => 'bar', 'name_from_passport' => 'bar'], 
     ['_id' => 'xxx', 'name_from_card' => 'baz', 'name_from_passport' => 'bazz'], 
     ['_id' => 'xxx', 'name_from_card' => 'qux', 'name_from_passport' => 'qux'] 
    ]; 

如果name_from_cardname_from_passport的值不同的記錄,我會刪除這條記錄。在上面的例子中,記錄13將被刪除。

如何使用MongoDB PHP庫做到這一點?

回答

1

使用$where。您需要JavaScript表達式來比較的字段,並且在大多數語言實現,這是簡單地表示爲一個字符串:

$collection->deleteMany([ '$where' => 'this.name_from_card !== this.name_from_passport' ]) 

deleteMany()方法適用於「所有」匹配的文檔,而不只是第一場比賽。

相關問題