MongoDB Doctrine ODM изменяет имя коллекции для документа во время выполнения

Я должен создать коллекцию для пользователей за каждый день, когда они регистрируются, поэтому, если у меня будет 5 пользователей и 2, зарегистрируйтесь в 2013-03-02, а 3 зарегистрируйтесь в 2013-03-03, у меня будет 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", которая является последней датой, если я установлю MeltApplication::getDocumentManager()->flush(); после оператора foreach end, который Я должен это сохранить все в первой коллекции 03-02.

Есть ли варианты сделать это, чтобы сохранить их отдельно?

Спасибо

2 ответа

$data = $odm->getClassMetadata('NameEntity');
$data->setCollection($collectionName);

Это ответ.

Единственное решение состояло в том, чтобы повторно инициализировать DocumentManager

Другие вопросы по тегам