我有点评论,可以喜欢它们。喜欢的内容保存在Comments
EmbedMany(targetDocument=User)
。
我想查询特定用户喜欢的所有Comments
,我该怎么做?
我想到了类似的东西:
$dm->createQueryBuilder('Comment')
->field('likes.id')
->in(array($user->getId()))
->getQuery()
->execute();
但这似乎不起作用。
答案 0 :(得分:3)
您可以在嵌入文档中查询,就像它是普通字段一样。它的类型是ObjectId,因此您必须手动创建要查询的MongoId。
$dm->createQueryBuilder('Comment')
->field('likes.$id')->equals(new \MongoId($user->getId()))
->getQuery()
->execute();
并且需要注意的是,对于参考文献,它将是:
$dm->createQueryBuilder('Comment')
->field('likes')->references($user)
->getQuery()
->execute();