【问题标题】:Storing a document in a different collection - Mongodb with symfony2将文档存储在不同的集合中 - 带有 symfony2 的 Mongodb
【发布时间】:2012-08-01 10:41:17
【问题描述】:

我正在尝试使用 Mongodb 和 symfony2 将文档存储在不同的集合中

这是我的控制器,他将文档设置到数据库中。

public function createAction(){
$post = new Post();
$post->setUrl('A Foo Bar');
$post->setTitle('asdf');
$dm = $this->get('doctrine.odm.mongodb.document_manager');
$dm->persist($post);
$dm->flush();
return new Response('Created post id '.$post->getId());}

如您所见,这是DoctrineMongoDBBundle官方文档的示例

但问题是,默认情况下,它将文档创建为一个名为类的集合,在我的例子中是 Post(),所以集合名称是 Post。我想将文档保存到一个集合中,例如 charlies_posts 或任何字符串作为变量。

【问题讨论】:

    标签: php mongodb collections symfony


    【解决方案1】:

    这很简单 :) 在您的文档类的定义中,只需使用“collection”参数即可。

    这是一个例子:

    <?php
    
    namespace MyProject\Document;
    
    use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
    
    /**
     * @ODM\Document(
     *     collection="charlies_posts"
     * )
     */
    class Post
    {
    

    【讨论】:

      【解决方案2】:

      是的,正如你所说,我们可以将其定义为参数。

      Documents\User:
        type: document
        db: my_db
        collection: charlies_post
      

      在这种情况下,在 YAML 映射文件中,可能会选择不同的集合,但在我的情况下,我想动态设置集合名称,因为我有与用户相关的帖子,所以 charlies 帖子应该转到 charlies_post 集合,而 peter 帖子应该去 peter_post 收藏...

      我想必须有一个方法来设置它但我找不到它..

      【讨论】:

        猜你喜欢
        • 2014-06-09
        • 2013-07-12
        • 2015-06-09
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        • 2014-05-26
        • 2016-08-17
        • 1970-01-01
        相关资源
        最近更新 更多