获取嵌入文档的空集合

Krz*_*ała 2 doctrine mongodb symfony odm

我想获得一系列嵌入式文档.我将数据放入数据库中,如下所示:

$dm->getRepository('BundleUserBundle:User')->addRatedPostById($user->getId(), new RatedPost($id, $type));
Run Code Online (Sandbox Code Playgroud)

......工作正常.现在我在mongo控制台中看到了新数据,但是当我试图通过该getRatedPosts()方法获取此数据时,它返回null而不是ArrayCollection.怎么了?

上下文如下所示:

class User extends BaseUser {
    /**
     * @MongoDB\EmbedMany(targetDocument="RatedPost")
     */
    protected $ratedPosts;

   /**
    * Add ratedPosts
    *
    * @param Bundle\UserBundle\Document\RatedPost $ratedPosts
    */
    public function addRatedPost(\Bundle\UserBundle\Document\RatedPost $ratedPosts)
    {
        $this->ratedPosts[] = $ratedPosts;
    }

   /**
    * Remove ratedPosts
    *
    * @param Bundle\UserBundle\Document\RatedPost $ratedPosts
    */
    public function removeRatedPost(\Bundle\UserBundle\Document\RatedPost $ratedPosts)
    {
        $this->ratedPosts->removeElement($ratedPosts);
    }

   /**
   * Get ratedPosts
   *
   * @return Doctrine\Common\Collections\Collection $ratedPosts
   */
   public function getRatedPosts()
   {
       return $this->ratedPosts;
   }

/**
 * @MongoDB\EmbeddedDocument
 */
class RatedPost
{
    /**
     * @MongoDB\Int
     */
    public $post;

   /**
    * @MongoDB\String
    */
    public $rate;
   ...
}
Run Code Online (Sandbox Code Playgroud)

小智 9

我有完全相同的问题:保存没有问题,但获取嵌入的文件是.原来这是一个"Symfony"缓存问题(也在app_dev.php上).您是否尝试删除缓存,这对我有用!