我目前正在使用 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();
首先,我知道我使用的方法不是最好的,所以我正在寻找替代方法。其次,我不能使用该方法删除嵌入在活动中的评论中的投票,所以我正在寻找一种方法来做到这一点。
我在 Doctrine 文档或 Stack(或其他论坛)上找不到任何解决方案。
如果您对我有一些线索或建议,我会很高兴阅读:D