2

私は何かについてのコメントを持っています、そしてそれらを好きになることは可能です。いいねはとして保存さCommentsEmbedMany(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 に答える