0

を含むドキュメントユーザーがあります

/**
 * @MongoDB\ReferenceOne(targetDocument="Image")
 */
private $image;

およびImage というドキュメントを埋め込むドキュメントImageCollection

/** 
 * @MongoDB\EmbedMany(targetDocument="Image") 
 */
private $images = array();

そして、いくつかの通常のフィールドを含む私の埋め込みドキュメント画像。これは私が参照を試みる方法です(アップローダーは一部のユーザーへの参照です):

$rep = $this->dm->getRepository('Document\ImageCollection');
$qb = $rep->createQueryBuilder('Document\ImageCollection')->field('images.uploader.$id')->equals(new \MongoId($uploader->getId()));
$query = $qb->getQuery(); // get query
$result = $query->execute(); // do query
$arr = $result->toArray(); // get array
$item = array_shift($arr); // get first item of array

$newUser = new Documents\User();
$newUser->setName('Bob King');
$newUser->setImage($item->getImages()[0]);

結果は次のようになります。問題は、$id が null なのに $ref と $db が正しい理由がわからないことです。

{
    "_id": ObjectID("51c2c357fa463404041b55ce"),
    "name": "Bob King",
    "image": {
        "$ref": "Image",
        "$id": null,
        "$db": "db_users_and_images"
    }
}
4

1 に答える 1