2

私は Symfony2 MongoDB + Doctrine を使用しています。オブジェクトを定義するクラスの名前とは異なる名前のコレクションにオブジェクトを保存するように doctrine に指示したいと考えています。また、新しいコレクションの名前は、別のコレクション内のオブジェクトの ID にする必要があります。たとえば、Posts というクラスがあり、元の User コレクション内のユーザーの ID にちなんで名付けられたコレクションにそれらを保存したいと考えています。つまり、すべての新しい投稿を User555 という名前のコレクションに保存するように doctrine に指示する必要があり、このコレクションを作成して実行時にそこに保存するように doctrine に指示できるはずです。

次のようにファイルで構成することで、コレクションの名前を静的に変更できることがわかります:別のコレクションにドキュメントを保存する - Mongodb with symfony2

しかし、実行時にコレクションを作成できる必要があります。

誰かが私を正しい方向に向けてくれてありがとう!

乾杯。

4

1 に答える 1

1

ORMを使用すると、次のことができます

$em->getClassMetadata('\AcmeBundle\Entity\Something')->setTableName('test')

あなたができるはずのODMを使用して

`$dm->getClassMetadata('\AcmeBundle\Document\Something')->setCollection('test')

私は Doctrine コードを調べましたが、それは可能です。ただし、これを行うと、元に戻さない限り、スクリプトの存続期間中、その Document に使用されるコレクションが変更されることに注意してください。

一度に 1 つのエンティティに対してのみこれを行う合理的な方法を知りません。おそらく、独自の永続化サービスを作成して ODM をラップするのが最善でしょう。

于 2013-03-29T14:45:03.150 に答える