我使用Doctrine 2 ODM MongoDB(this and dependencies and lrow from Git中的最新) + PHP Mongo扩展(v1.1.4) + mongo(v1.8.3 x64最新)

在某些情况下,发生更改实体时,它不会更新

在一个嵌入式实体中,我有一个对其父母的回报,以解决 http://groups.google.com/group/doctrine-dev/browse_thread/thread/016422b2cc9dcec9?pli=1 (如何在嵌入式文档中获取父档?我的问题到目前为止,它是否可以在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.dorluctible.hp” => 99.28706276 是核心部分 - >但此更改永远不会反映在数据库中

  • 没有PHP错误/异常触发
  • Mongo的日志没有显示错误
  • 通常,Mongo和Doctrine ODM Mongo运行良好,实体被持久,更新,删除...

我在哪里可以进一步搜索或解决这个问题,谢谢

有帮助吗?

解决方案

这很尴尬,但问题是我想要嵌入式索引(如关联阵列)...然而,这是在实际维护的学说维护的属性上完成的,因此它触发了重新填充嵌入式文档,以丢弃更改

其他提示

 $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