2017-09-06 5 views
0

mongoDBのデータを操作するためにMongoDB PHPライブラリを使用しています。2つのフィールドの値が異なる文書を削除する方法

ドキュメント:私は例えば、2つのフィールドが異なる値を持つレコードを削除したいhttps://docs.mongodb.com/php-library/master/tutorial/crud/

は:name_from_cardname_from_passportの値がある場合

$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'] 
    ]; 

コレクションがありますこのレコードを削除します。上記の例では、レコード13が削除されます。

MongoDB PHPライブラリでの操作方法?

答えて

1

$whereを使用してください。あなたは、フィールドを比較するために、JavaScript式を必要とし、ほとんどの言語の実装では、これは単に文字列として表現される。

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

deleteMany()方法は、「すべて」一致の文書だけではなく、最初のマッチに適用されます。

関連する問題