MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So aktualisieren Sie eingebettete Dokumente in MongoDB mit Doctrine ODM

Wenn Sie queryBuilder verwenden möchten, verwenden Sie dies

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

Oder:Wenn Sie Setter und Getter für eine EmbedMany-Membervariable generieren, werden Memberfunktionen innerhalb Ihrer Klasse hinzugefügt und entfernt. In Ihrem Fall handelt es sich also um Memberfunktionen:

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

Sie können also die Funktion addPageComment() verwenden, die es hinzufügt, wenn es nicht existiert, und es aktualisiert, wenn es bereits vorhanden ist.