Question

J'utilise Doctrine 2 ODM \ MongoDB (cela et dépendances toutes les dernières nouvelles de GIT) + l'extension PHP Mongo (v1.1.4) + Mongo (v1.8.3 x64 dernier)

Dans plusieurs cas, il arrive que lorsque je change une entité, il ne soit pas mis à jour

Dans une entité intégrée, j'ai une référence de retour au parent de lui, de résoudre http://groups.google.com/group/doctrine-dev/browse_thread/thread/016422b2cc9dcec9?pli=1 (Comment obtenir document parent intérieur document incorporé?) sans utiliser des fonctionnalités internes comme UnitOfWork - cela ne peut ou peut être pertinent, je ne sais pas ... J'espère que non ( ma question de savoir si elle pourrait sont restés sans réponse sur IRC à ce jour )

Cependant un seul changement dans l'un des documents de caractères intégrés déclenche ces requêtes ( devrait vraiment être pertinente que pour elle, avant qu'il y ait eu de chasse et une condition à l'intérieur de l'enregistreur sur le drapeau qui a été mis à nouveau juste avant le changement )

décharge Logger:

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

Code d'initialisation: http://pastebin.com/1dKagqry

"components.destructible.hp" => 99.28706276 est la partie de noyau -> encore ce changement ne reflète dans la DB

  • il n'y a pas d'erreur php / exception déclenchée
  • de mongo de journal affiche aucune erreur
  • généralement la doctrine et Mongo \ ODM \ Mongo fonctionne bien, les entités se persistèrent, mis à jour, Deleted ...

Où puis-je effectuer des recherches plus ou que puis-je faire pour résoudre ce problème Merci

Était-ce utile?

La solution

Il est maladroit, mais la question est que je voulais les EmbeddedDocuments indexés (comme tableau associatif) ... cela a été fait cependant sur une propriété Doctrine entretenue réelle, il a déclenché la re-pousser EmbeddedDocument, en rejetant les modifications

Autres conseils

 $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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top