Mongodb更新嵌入式文档原则(不允许使用零长度键,你是否使用带双引号的$?)

时间:2015-03-01 13:00:21

标签: mongodb symfony doctrine-orm doctrine

我尝试使用Doctrine更新嵌入式mongodb文档:我想搜索嵌入式文档(在其父级内...),然后在其父级中更新子文档。基本上,这是我的数据结构:

class a{
    protected $id;
    protected $objectB;
    portected $myArray;  // type of class c
}


class b{
    protected $id;
    protected $attribute;
    protected $realCoolAttribute;
}

class c{
    protected $id;
    protected $attribute;
    protected $realCoolAttribute;
}

所有这些属性都在其类中包含其getter和setter。但我也试过使用公共属性而不是受保护属性。

使用similar query to this

我可以搜索甚至删除嵌入的文档。我也能够改变简单的属性。但是,如果我尝试更改一个复杂的属性,它是一个数组的成员,或者如果我想要更改的属性是一个完整的文档(而不是一个简单的值...),我收到以下错误信息:

  

不允许使用零长度密钥,您是否使用带双引号的$?

我要更新的新文档已完成,包含属性和ID。

我将不胜感激任何帮助

0 个答案:

没有答案