How can I filter a mongodb collection on array type field? Using Doctrine ODM.
So I want to filter only documents, that contain translations.locale = 'sk' and translations.translation = 'slovensko'.
I used this code:
$qb = $this->createQueryBuilder();
foreach ($filters as $keys => $value) {
$qb = match ($keys) {
'isActive' => $qb->field('isActive')->equals($value === 'true'),
'locale' => $qb->field('translations.locale')->equals($value),
'value' => $qb->field('translations.translation')->equals(new Regex("^{$value}", 'i')),
default => $qb
};
}
return $qb->getQuery()->execute()->toArray();
That worked when I only had one translation saved. But once I added another, it returned empty array.
