Вопрос

Я использую доктрину 2 odm mongodb (это и зависимости все последние от GIT) + PHP Mongo Extension (V1.1.4) + Mongo (v1.8.3 x64 Последний)

В нескольких случаях случается, что когда я меняю сущность, она не обновляется

В встроенной сущности у меня есть обратная ссылка на его родитель, чтобы решить http://groups.google.com/group/doctrine-dev/browse_thread/thread/016422b2cc9dcec9?pli=1 (Как получить родительский документ внутри встроенного документа?) Без использования внутренних функций, таких как UnitOfwork - это может быть или не быть актуальным, я не знаю ... Я бы надеюсь, что нет (мой вопрос, может ли он остаться без ответа на IRC до сих пор)

Однако единственное изменение в встроенных документах персонажа запускает эти запросы (Должен действительно быть актуальным только для этого, перед ним был промывка и условие внутри лесозаготовителя на флаге, которое было снова установлено прямо перед изменением)

Дамп регистратора:

array(6) {
   "update" => TRUE
   "query" => array(1) {
      "_id" => MongoId(1) {
         "$id" => "4e3143be662c32400d000006" (24)
      }
   }
   "newObj" => array(1) {
      "$set" => array(2) {
         "components.destructible.hp" => 99.28706276
         "options.character" => array(3) {
            "$ref" => "characters" (10)
            "$id" => MongoId(1) { ... }
            "$db" => "nuclearRain" (11)
         }
      }
   }
   "options" => array(0) 
   "db" => "someDB" (11)
   "collection" => "characters" (10)
}
array(6) {
   "update" => TRUE
   "query" => array(1) {
      "_id" => MongoId(1) {
         "$id" => "4e553306662c32680800054b" (24)
      }
   }
   "newObj" => array(1) {
      "$set" => array(1) {
         "createdBy" => array(3) {
            "$ref" => "characters" (10)
            "$id" => MongoId(1) { ... }
            "$db" => "nuclearRain" (11)
         }
      }
   }
   "options" => array(0) 
   "db" => "someDB" (11)
   "collection" => "worlds" (6)
}
array(6) {
   "update" => TRUE
   "query" => array(1) {
      "_id" => MongoId(1) {
         "$id" => "4e553306662c32680800054c" (24)
      }
   }
   "newObj" => array(1) {
      "$set" => array(1) {
         "world" => array(3) {
            "$ref" => "worlds" (6)
            "$id" => MongoId(1) { ... }
            "$db" => "nuclearRain" (11)
         }
      }
   }
   "options" => array(0) 
   "db" => "someDB" (11)
   "collection" => "games" (5)
}

Код инициализации: http://pastebin.com/1dkagqry

"Components.Destrulitiable.hp" => 99.28706276 Является ли основная часть ->, но это изменение никогда не отражается в БД

  • нет никакой ошибки PHP/исключения
  • Журнал Mongo не показывает ошибок
  • Как правило, монго и доктрина odm mongo работают нормально, сущности становятся сохраняемыми, обновленными, удаленными ...

Где я могу искать дальше или что я могу сделать, чтобы решить эту проблему, спасибо

Это было полезно?

Решение

Это неловко, но проблема в том, что я хотел, чтобы индексированные в EmbeddedDocuments (например, ассоциативный массив), однако, это было сделано на фактической собственности, поддержанном доктриной, поэтому он вызвал повторную нагрузку в EmbeddedDocument, отказавшись от изменения

Другие советы

 $friend = Zend_Registry::get('doctrine')->getDocumentManager()->createQueryBuilder('App\document\Message')->update()->field('unread')->set(TRUE)->field('viewer_id')->equals(10001)-> getQuery(array('multiple' => true))->execute();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top