У меня есть документ MongoDB в Symfony2 с документом поместить его:доктрина Embeded документ поддержания порядка с помощью ключа
/**
* @MongoDB\EmbedMany(targetDocument="Restriction")
*/
private $restrictions = array();
public function __construct()
{
$this->restrictions = new \Doctrine\Common\Collections\ArrayCollection();
}
В этом документе ограничение имеет два свойства. from_pos и length. Я хочу, чтобы этот массив всегда сортировался by_pos, поэтому во всем приложении я всегда буду уверен, что этот список отсортирован.
Есть ли простой способ сделать это автоматически? Я имею в виду, чтобы вызвать функцию addRestriction, и это будет автоматически сохранено в базе данных mongodb, отсортированной по ключевому элементу, который я хочу.
В настоящее время функция addRestriction просто добавляет новый документ в конец списка.
/**
* Add restriction
*
* @param MyBundle\Document\Restriction $restriction
*/
public function addRestriction(\MyBundle\Document\Restriction $restriction)
{
$this->restrictions[] = $restriction;
}
Я мог бы обновить эту функцию, чтобы вставить ограничение в нужное положение, но я хотел бы знать, если есть простой способ.