我是面向文档的数据库的新手。我遇到了一个简单的问题:
我必须区分对象:发布和标记。
{
"_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
}
答案 0 :(得分:0)
我想我找到了适合回答我问题的东西。但我不确定这是最好的方法......
public function getPostsWithTag($tagId)
{
$query = $this->createQueryBuilder()
->field('tags.id')
->in(array($tagId)
->getQuery()
return $query->execute();
}