2

我对某事有评论,并且可以喜欢它们。喜欢的内容保存在Commentsas 中EmbedMany(targetDocument=User)

我想查询Comments特定用户喜欢的所有内容,我该怎么做?

我想到了类似的东西:

$dm->createQueryBuilder('Comment')
    ->field('likes.id')
    ->in(array($user->getId()))
    ->getQuery()
    ->execute();

但这似乎不起作用。

4

1 回答 1

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();
于 2012-06-14T16:13:33.587 回答