3

私は symfony2 と doctrine-mongodb-odm を使ったプロジェクトに取り組んでいます。querybuilder を使用して複数のドキュメントに対してアトミックな更新を実行したいのですが、何か不足しています:

$this->createQueryBuilder('MyBundle:MyDoc')
->update()
->field('isOpen')->set(false)
->field('isOpen')->equals(true)
->getQuery()
->execute();

動作しますが、1 つのドキュメントしか更新しません。次のようなオプションを追加する必要があると思います

array('multi' => true)

どこかですが、ドキュメントでそれについて何も見つかりませんでした。

誰か助けてくれませんか?

4

2 に答える 2

4

クラス定義を調べて答えを見つけました。このオプションを設定するために、multipleという名前のクエリビルダーのメソッドがあります。

$this->createQueryBuilder('MyBundle:MyDoc')
->update()
->multiple(true)
->field('isOpen')->set(false)
->field('isOpen')->equals(true)
->getQuery()
->execute();
于 2013-01-21T07:29:24.860 に答える