MongoDB не обновляется

Я использую Doctrine 2 ODM\MongoDB (это и все последние версии из GIT) + расширение PHP Mongo (v1.1.4) + Mongo (v1.8.3 x64 последняя версия)

В некоторых случаях бывает так, что когда я меняю объект, он не обновляется.

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

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

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

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.destructible.hp" => 99.28706276 является основной частью -> однако это изменение никогда не отражается в БД

  • нет ошибки/исключения php
  • журнал монго не показывает ошибок
  • как правило, Mongo и Doctrine\ODM\Mongo работают нормально, объекты сохраняются, обновляются, удаляются...

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


person NoxArt    schedule 05.09.2011    source источник


Ответы (1)


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

person NoxArt    schedule 18.09.2011