将文档存储在另一个集合中-Mongodb with symfony2


Storing a document in a different collection - Mongodb with symfony2

我试图使用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 官方文档的示例

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

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

这里有一个例子:

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

Yeahp,正如您所说,我们可以将其定义为一个参数。

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

在这种情况下,在YAML映射文件中,可以选择不同的集合,但在我的情况下,我想通常设置集合名称,因为我有与用户相关的帖子,所以charlies-posts应该转到charlies_post集合,peter-posts应该到peter_post集合。。。

我想一定有一个方法可以设置它,但我找不到它。