如何从嵌入文档中删除嵌入文档?

时间:2013-05-07 14:29:10

标签: mongodb symfony

我目前正在使用Symfony 2和MongoDB进行项目,我在使用ID删除嵌入文档时遇到问题。 我正在与活动合作。活动嵌入了评论列表和投票列表。 评论也可以嵌入投票列表。

要从活动中删除评论或投票,我会这样做:

    $dm = $this->get('doctrine.odm.mongodb.document_manager');
    $activity = $dm->getRepository('SocialNetworkActivityBundle:Activity')
                   ->findOneBy(array("votes.id" => $voteId));

    $votes = $activity->getVotes();
    $targetVote = null;
    foreach ($votes as $vote)
        if($vote->getId() == $voteId) {
            $targetVote = $vote;
            break;
        }
   $activity->removeVote($vote);
   $dm->flush();

首先,我知道我使用的方法不是最好的,所以我正在寻找替代方案。 其次,我不能使用该方法删除嵌入在Activity中的注释中的投票,因此我正在寻找一种方法来实现这一点。

我在Doctrine文档或Stack(或其他论坛)中找不到任何解决方案。

如果你有一些线索或建议,我会很高兴看到:D

0 个答案:

没有答案