i have one problem. When i try to execute this query, query give me this error "invalid operator '$addToSet'".
$qb = $this->createAggregationBuilder();
$qb
->match()
->field('categories')->in($categories)
->field('hidden')->field('hidden')->notEqual(true)
->unwind('$type')
->unwind('$variants')
->unwind('$variants.subvariants')
->unwind('$variants.subvariants.params')
->group()
->field('id')->expression('$type')
->field('param')->addToSet(
$qb
->expr()
->field('id')->expression('$variants.subvariants.params.param')
->field('values')->addToSet('$variants.subvariants.params.value')
);
$res_params = $qb->execute()->toArray();
Does anyone know how to execute this query correctly?
I need result like this
[
{
"_id": {
"$ref": "Type",
"$id": "f564ece4fe4b4cdd9f1ccd8f092a98f9",
"$db": "skibike"
},
"param": [
{
"_id": {
"$ref": "Param",
"$id": "10f67225cfbe4c0e962828f32ea0fc25",
"$db": "skibike"
},
'values': [1, 2, 3]
},
{
"_id": {
"$ref": "Param",
"$id": "5ee15b7cc9404ceab9eb41f48e8622f5",
"$db": "skibike"
},
'values': [5, 4]
}
]
}
]
Thank you