Domanda

Io uso Doctrine 2 ODM \ MongoDB (questa e le dipendenze da tutti i più recenti GIT) + estensione PHP Mongo (v1.1.4) + Mongo (v1.8.3 x64 ultimo)

In diversi casi accade che quando cambio un'entità, non si aggiorna

In un soggetto incorporato ho un riferimento ad esso con i genitori, per risolvere http://groups.google.com/group/doctrine-dev/browse_thread/thread/016422b2cc9dcec9?pli=1 (Come arrivare documento principale all'interno documento incorporato?) senza utilizzare le funzionalità interne, come UnitOfWork - questo può o non essere relativo, non lo so ... mi auguro che non ( la mia domanda se possa andato senza risposta sul IRC finora )

Tuttavia, un singolo cambiamento in uno dei documenti incorporati del personaggio innesca queste query ( in realtà dovrebbe essere rilevante solo ad esso, c'è stato a filo prima e di una condizione all'interno del registratore sulla bandiera che è stato impostato nuovamente a destra prima del cambiamento )

Logger discarica:

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

L'inizializzazione codice: http://pastebin.com/1dKagqry

"components.destructible.hp" => 99.28706276 è la parte del centro -> ma questo cambiamento non è mai riflette nel DB

  • non ci sono errori php / eccezione innescato
  • spettacoli di registro Mongo errori
  • in generale il Mongo e Doctrine \ ODM \ Mongo funziona bene, le entità vengono persistevano, aggiornati, cancellati ...

Dove posso cercare ulteriormente o che cosa posso fare per risolvere questo problema Grazie

È stato utile?

Soluzione

È imbarazzante, ma il problema è che ho voluto le EmbeddedDocuments indicizzati (come array associativo) ... questo è stato tuttavia fatto su una effettiva proprietà dottrina mantenuto, quindi attivato nuovamente spingendo l'EmbeddedDocument, scartando le modifiche

Altri suggerimenti

 $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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top