sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man uppdaterar inbäddade dokument i MongoDB med Doctrine ODM

Om du vill använda queryBuilder använd denna

$dm->createQueryBuilder('Page')
    ->update()
    ->field('page.pageComment')->set( <$newupdatePageCommentObj> )
    ->field('id')->equals('<matchedId>')
    ->getQuery()
    ->execute();

Eller när du genererar sättare och getters för en EmbedMany-medlemsvariabel kommer den att generera lägg till och ta bort medlemsfunktioner i din klass. så i ditt fall kommer dessa att vara medlemsfunktioner:

public function addPageComment(type_hint_with_your_pageComment_document $pageComment )
{
    $this->pageComment[] = $pageComment;
}
public function removePageComment( type_hint_with_your_pageComment_document $pageComment )
{
    $this->items->removeElement( $pageComment );
}

Så du kan använda funktionen addPageComment() som kommer att lägga till den om den inte finns och kommer att uppdatera den om den redan finns där.



  1. Mongo uppdatering av subdocs

  2. Fungerar operatorn `$eq` med array dot notation?

  3. mongodb hitta av flera arrayobjekt

  4. MongoDB - Fördel med att använda 12 bytes sträng som unik identifierare istället för inkrementellt värde