如何从Mongo获取更新的对象

时间:2012-10-10 08:27:09

标签: mongodb symfony doctrine-odm

我有一个匹配文档,上面有ReferenceMany(分数)。 当我向匹配添加新分数并返回匹配时,新分数不存在。然而,在下一个请求中,得分就在那里。如何强制Doctrine在同一请求中更新我的匹配?

代码:

$match = $dm->getRepository('Match')->find($matchId);
// Save score.
$dm->persist($score);

// Add score to match
$match->addScores($score);

$dm->flush(); // <-- This doesn't help.

return $match; // <-- Is missing the new Score.

2 个答案:

答案 0 :(得分:0)

我找到了两个解决问题的方法:

  1. 重定向到GET匹配,而不是在同一个请求中返回。它有效,但感觉有点尴尬。

  2. 最后请$dm->createQueryBuilder('Match') ->field('_id')->equals($id) ->refresh(TRUE) ->getQuery() ->execute();从数据库中获取更新后的匹配。

答案 1 :(得分:0)

您在$dm->flush();之后尝试$dm->persist($score);了吗?