0

私はドキュメント指向データベースに不慣れです。私は単純な問題で立ち往生しています:

オブジェクトを変える必要があります:投稿とタグ。

{
   "_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
}
4

1 に答える 1

0

私の問題を解決するのに適したものを見つけたと思います。しかし、それが最善の方法であるかどうかはわかりません...

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

   return $query->execute();
}
于 2013-01-04T15:00:14.620 に答える