У меня есть следующий запрос, и я хочу, чтобы первый результат был гидратирован. Вот что я попробовал:
$builder = $dm->createAggregationBuilder(\Documents\Jobs::class);
$builder
->facet()
->field('carpenterJobs')
->pipeline(
$dm->createAggregationBuilder(\Documents\Jobs::class)
->hydrate($this->getEntityName(\Documents\Jobs::class))
->match()
->field('name')
->equals('carpenter');
)
->field('cleanerJobs')
->pipeline(
$dm->createAggregationBuilder(\Documents\Jobs::class)
->match()
->field('name')
->equals('cleaner');
)
;
Но когда я выполняю это, результаты не увлажняются. Ниже приведена сущность Джобс:
/**
* @QueryResultDocument
* @Document(repositoryClass="...")
*/
class Jobs
{
/**
* @Id
*/
private $id;
/**
* @Field(type="string")
* @Index(unique=true, order="asc")
*/
private $name;
...
}
Я также пытался увлажнить $builder
но он возвращает ошибку, говорящую Undefined index: _id
, Выполнив запрос ‘carpenterJobs’ сам, не находясь внутри крана, я могу вернуть гидратированные результаты.
Задача ещё не решена.
Других решений пока нет …