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

Mongodb 如何从嵌入文档中删除嵌入文档?,mongodb,symfony,Mongodb,Symfony,我目前正在使用Symfony 2和MongoDB进行一个项目,在使用is ID删除嵌入文档时遇到了一个问题。 我在从事活动。活动嵌入评论列表和投票列表。 评论也可以嵌入投票列表 要删除活动中的评论或投票,我会执行以下操作: $dm = $this->get('doctrine.odm.mongodb.document_manager'); $activity = $dm->getRepository('SocialNetworkActivityBundle:Activ

我目前正在使用Symfony 2和MongoDB进行一个项目,在使用is 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();
首先,我知道我使用的方法不是最好的,所以我正在寻找替代方法。 第二,我不能用这种方法删除嵌入活动中的评论中的投票,所以我正在寻找一种方法

我在条令文档或堆栈(或其他论坛)上找不到任何解决方案


如果你有一些线索或建议给我,我很乐意阅读:D

嵌入式文档没有id,这可能是你的问题。我在嵌入式文档结构中有一个_id,它在我的mongo数据库中可见。它只是让我能够识别每个嵌入的文档。为什么一个嵌入的文档不能有一个_id?