2017-09-06 53 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()方法适用于“所有”匹配的文档,而不只是第一场比赛。

相关问题