这是用例。文档中的某些字段是可序列化/可反序列化的,而另一些则不是(参见 参考资料@JMS\ReadOnly
)。
/**
* @JMS\Groups({"board_list", "board_details"})
* @JMS\Type("string")
* @MongoDB\string
*/
protected $slug;
/**
* @JMS\Groups({"board_list", "board_details"})
* @JMS\ReadOnly
* @MongoDB\Increment
*/
protected $views;
在控制器中我执行更新文档的操作:
/**
* [PUT] /boards/{slug} "put_board"
* @ParamConverter("board", converter="fos_rest.request_body")
* @Rest\Put("/boards/{slug}")
* @Rest\View(statusCode=204)
*/
public function putBoardAction($slug, Board $board)
{
$dm = $this->get('doctrine_mongodb')->getManager();
$board = $dm->merge($board);
$dm->flush();
return true;
}
如果该views
字段在操作之前有一些值,那么在操作之后它会重置为 0。如何避免它?是否有解决方法 Merge 或 Persist?