获取具有引用文档的id的父对象

时间:2012-12-28 15:44:24

标签: mongodb doctrine-odm

我是面向文档的数据库的新手。我遇到了一个简单的问题:

我必须区分对象:发布和标记。

{
   "_id": "ObjectId("50dad56881000001")",
   "author":"Chuck Norris",
   "title":"Blah....",
   "tags": [
       DBRef("Tag", ObjectId("50dad564871000001")),
       DBRef("Tag", ObjectId("50dad564871000002")),
       DBRef("Tag", ObjectId("50dad564871000003"))
}

我需要按标签查找帖子。我无法弄清楚如何使用引用的对象数组...

以下是我的映射对象:

class Tag
{
    /** @MongoDB\Id */
    protected $id;

    /** @MongoDB\Field(type="string") */
    protected $name;

    /** @MongoDB\Field(type="date") */
    protected $createdAt;
}

class Article
{
    /** @MongoDB\Id */
    protected $id;

    /** @MongoDB\Field(type="date") */
    protected $date;

    /** @MongoDB\Field(type="string") */
    protected $title;

    /** @MongoDB\Field(type="string") */
    protected $author;

    /** @MongoDB\Field(type="string") */
    protected $content;

    /** @MongoDB\ReferenceMany(targetDocument="Tag", cascade="all") */
    protected $tags
}

1 个答案:

答案 0 :(得分:0)

我想我找到了适合回答我问题的东西。但我不确定这是最好的方法......

public function getPostsWithTag($tagId)
{
   $query = $this->createQueryBuilder()
      ->field('tags.id')
      ->in(array($tagId)
      ->getQuery()

   return $query->execute();
}