我试图使用Mongodb和symfony2
将文档存储在不同的集合中这是我的控制器,他将文档设置为db。
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
的官方文档的示例但问题是,默认情况下它会将文档创建为名为class的Collection,在我的例子中是Post(),因此集合名称为Post。我想将文档保存到名为charlies_posts的集合或任何字符串作为变量。
答案 0 :(得分:2)
很容易:)在文档类的定义中,只需使用“collection”参数。
这是一个例子:
<?php
namespace MyProject\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/**
* @ODM\Document(
* collection="charlies_posts"
* )
*/
class Post
{
答案 1 :(得分:0)
Yeahp,正如您所说,我们可以将其定义为参数。
Documents\User:
type: document
db: my_db
collection: charlies_post
在这种情况下,在YAML映射文件中可能会选择不同的集合,但在我的情况下,我想以dinamically方式设置集合名称,因为我有与用户相关的帖子,所以charlies帖子应该转到charlies_post集合和peter帖子应该去peter_post收集......
我想必须有一种方法来设置它但我无法找到它..