gpt4 book ai didi

mongodb - 在 symfony2 + doctrine 中更改运行时的 MongoDB 集合

转载 作者:可可西里 更新时间:2023-11-01 10:44:24 25 4
gpt4 key购买 nike

我正在使用 Symfony2 MongoDB + Doctrine,我想告诉 doctrine 将我的对象保存在集合中,集合的名称与定义对象的类的名称不同。此外,新集合的名称应该是不同集合中对象的 ID。例如,我有一个名为 Posts 的类,我想将它们保存在一个以原始用户集合中的用户 ID 命名的集合中。这意味着我需要告诉 doctrine 将所有新帖子保存在一个名为例如的集合中。 User555 和我应该能够告诉 doctrine 创建这个集合并在运行时保存在那里。

我可以看到我可以通过在文件中配置它来静态更改集合的名称,如下所示:Storing a document in a different collection - Mongodb with symfony2

但我需要能够在运行时创建集合。

如果有人指出正确的方向,我将不胜感激!

干杯。

最佳答案

当你使用ORM时你可以做

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

使用 ODM 你应该可以做到

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

我查看了 Doctrine 代码,这是可能的。但是请注意,通过这样做,您将在脚本的生命周期内更改用于该文档的集合,除非您将其设置回去。

我不知道有什么合理的方法可以一次只对一个实体执行此操作。可能最好通过创建您自己的持久性服务来包装 ODM。

关于mongodb - 在 symfony2 + doctrine 中更改运行时的 MongoDB 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15679449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com