php - MongoDB+Doctrine ODM How to remove a embedded document in a document collection? -


im using mongodb doctrine orm , want remove embedded document "avatar" (or set null) in document collection.

my json-object looks this:

{     "_id" : objectid("55965d090203ff700f000032"),     "name" : "test",     "stores" : [          {             "_id" : objectid("559d166f0203ff081300002f"),             "storename" : "test",             "openingtimes" : "",             "address" : {                 ...             },             "contactperson" : {                 "firstname" : "",                 "lastname" : "",                 ...                 "avatar" : {                     "source" : "/uploads/images/company/55965d0980585/contactperson/",                     "name" : "contactperson.jpg"                 }             }         },  ...     ] } 

im using querybuilder , try this

$company = $this->getquerybuilder()                     ->findandupdate()                     ->field('stores')->equals($store)                     ->field('contactperson.avatar')->set(null)                     ->getquery(array('multiple' => true))                     ->execute(); 

but does´t work. how can access avatar key?

you can use equivalent of $unset in core operators example. suggest brevity , safety use:

$company = this->getquerybuilder()     ->findandupdate()     ->field('stores._id')->equals($storeid)     ->field('stores.$.contactperson.avatar')->unsetfield()->exists(true)     ->getquery()     ->execute(); 

where hold on _id value element in "stores" array want , helps match position of array element need remove document to.

also using "dot notation" embedded document path.

that "removes" "key" document rather setting null.

if want "mutiple" want .update() instead, not return object.


ughh!

to select things use:

$company = this->getquerybuilder()     ->find()     ->field('stores._id')->equals($storeid)     ->select('stores.$.contactperson.avatar')-     ->getquery()     ->execute(); 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -