我正在使用MongoDB PHP库来操作mongodb数据。
docs: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_card
和name_from_passport
的值不同,我将删除此记录。在上面的示例中,记录1
和3
将被删除。
如何使用MongoDB PHP库?
答案 0 :(得分:1)
使用$where
。您需要JavaScript表达式来比较字段,在大多数语言实现中,这只是表示为字符串:
$collection->deleteMany([ '$where' => 'this.name_from_card !== this.name_from_passport' ])
deleteMany()
方法适用于“所有”匹配的文档,而不仅仅是第一个匹配。