Frage

Ich verwende Doctrine 2 ODM mongoDB (diese und Abhängigkeiten alle neuesten von Git) + PHP Mongo -Erweiterung (v1.1.4) + mongo (v1.8.3 x64 neuest)

In mehreren Fällen kommt es vor, dass es bei meiner Änderung eines Unternehmens nicht aktualisiert wird

In einer eingebetteten Entität habe ich einen Rückblick auf die Eltern, um zu lösen http://groups.google.com/group/doctrine-dev/browse_thread/thread/016422b2cc9dcec9?pli=1 (Wie kann man über ein übergeordnetes Dokument in eingebettetes Dokument erhalten?) Ohne interne Funktionen wie Unitofwork zu verwenden - dies kann relevant sein oder nicht, ich weiß nicht ... Ich würde das nicht hoffen (nicht (Meine Frage, ob es bisher auf dem IRC unbeantwortet werden könnte)

Eine einzige Änderung in einem der eingebetteten Dokumente eines der Charaktere löst diese Abfragen jedoch aus ((Sollte wirklich nur relevant sein, es wurde vor ihm und eine Bedingung im Logger auf dem Flag, der kurz vor der Änderung wieder eingestellt wurde)

Logger -Dump:

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)
}

Initialisierungscode: http://pastebin.com/1dkagqry

"Komponenten.Destructible.hp" => 99.28706276 ist der Kernteil -> Dennoch spiegelt sich diese Änderung niemals in der DB wider

  • Es wird kein PHP -Fehler/keine Ausnahme ausgelöst
  • Mongos Protokoll zeigt keine Fehler
  • Im Allgemeinen läuft der Mongo und die Doktrin odm mongo gut, Entitäten werden bestehen, aktualisiert, gelöscht ...

Wo kann ich weiter suchen oder was kann ich tun, um dieses Problem zu lösen, danke

War es hilfreich?

Lösung

Es ist unangenehm, aber das Problem ist, dass ich wollte, dass die eingebetteten Dokumente indexiert sind (wie assoziatives Array) ... dies wurde jedoch auf einer tatsächlichen lehre gepflegten Eigenschaft durchgeführt, sodass es das Neuaufbau des eingebetteten Dokuments auslöste, wodurch die Änderungen verworfen wurden, die die Änderungen verworfen hatten

Andere Tipps

 $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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top