7

doctrine mongodb odm で複数のドキュメントを削除するにはどうすればよいですか? PHP クラスでは、次のコードを使用して実行できるはずです。

 $db->collection->remove(array("age" => 18));

doctrine mongo odmでどうすればできますか?

4

1 に答える 1

16

2 つのオプションがあります。DocumentManager を使用して、特定のクラスのコレクションを要求できます。これは実際にインスタンスを返しDoctrine\MongoDB\Collection、ベースをラップしてMongoCollectionロギングとイベントをサポートします。MongoCollection本当に必要な場合は、基礎となるものも利用できます。

$collection = $dm->getDocumentCollection('Documents\User');
$collection->remove(array('age' => 18));

// Use the raw MongoCollection to bypass logging and events
$mongoCollection = $collection->getMongoCollection();
$mongoCollection->remove(array('age' => 18));

または、クエリ ビルダー APIを使用できます。

$qb = $dm->createQueryBuilder('Documents\User');
$qb->remove()
    ->field('age')->equals(18)
    ->getQuery()
    ->execute();

で停止すると、返されたクエリ オブジェクトでメソッドをgetQuery()使用して、debug()Doctrine がデータベースに対して実行する内容を確認できます。

于 2012-07-02T23:48:03.560 に答える