【发布时间】:2013-06-24 14:53:32
【问题描述】:
我必须为每天注册的用户创建集合,所以如果我有 5 个用户,2 个在 2013 年 3 月 2 日注册,3 个在 2013 年 3 月 3 日注册,我将有 2 个集合
用户在没有集合的 YML 文件中声明
在项目中,我通过 CLI 进行类似这样的导入
foreach($arUsers as $key=>$arUser)
{
$collection_name = "day_".$arUser['date'];
$user = new User();
/* Change the collection name to be dynamic */
$OdmMetaData = MeltApplication::getDocumentManager()->getClassMetaData( get_class($user) );
$OdmMetaData->setCollection($collection_name);
$user->setUserId($arUser['user_id']);
$user->setEmail($arUser['email']);
....
$this->getDocumentManager()->persist($user);
$this->getDocumentManager()->flush();
}
问题是,当我查看 mongoDB 时,我只看到一个名为 day_2013-03-03" 的集合,这是最后一个日期,如果我在 foreach 之后设置 MeltApplication::getDocumentManager()->flush(); end 语句,我应该把它全部保存在第一个集合 03-02 中。
是否有任何选项可以做到这一点,将它们分开保存?
谢谢
【问题讨论】:
标签: mongodb doctrine-odm odm