0

我尝试使用 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 或任何字符串的集合中作为变量。

4

2 回答 2

2

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

这是一个例子:

<?php

namespace MyProject\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;

/**
 * @ODM\Document(
 *     collection="charlies_posts"
 * )
 */
class Post
{
于 2012-08-01T11:31:50.357 回答
0

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

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

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

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

于 2012-08-02T07:13:43.653 回答