Mongo $ addToSet a Array

У меня есть рабочий запрос:

$offenses = \App\LawCase::raw(function ($collection)  {
return $collection->aggregate([
[
'$match' => ['active' => true, 'type' => 'criminal', 'current_offense_literal'=> ['$exists' => true]]
],
[
'$group' => ['_id' => '$current_offense_category', 'offense_literals' => ['$addToSet' => '$current_offense_literal']]

]
]);

});

Я просто хочу добавить дополнительное значение в addToSet выше. Например, у каждого current_offense_literal также есть значение current_offense_literal_value, и я хотел бы добавить его вместе с current_offense_literal.

Что я попробовал:

$offenses = \App\LawCase::raw(function ($collection)  {
return $collection->aggregate([
[
'$match' => ['active' => true, 'type' => 'criminal', 'current_offense_literal'=> ['$exists' => true]]
],
[
'$group' => ['_id' => '$current_offense_category', 'offense_literals' => ['$addToSet' => ['$current_offense_literal'=>['$push'=> '$current_offense_literal_value']]]]

]
]);

});

Но я получаю:
Нераспознанное выражение ‘$ current_offense_literal’.

0

Решение

попробуй сделать это,

$offenses = \App\LawCase::raw(function ($collection)  {
return $collection->aggregate([
[
'$match' => ['active' => true, 'type' => 'criminal', 'current_offense_literal'=> ['$exists' => true]]
],
[
'$group' => ['_id' => '$current_offense_category', 'offense_literals' => ['$addToSet' => ['current_offense_literal'=>'$current_offense_literal', 'current_offense_literal_value' =>'$current_offense_literal_value']]]

]
]);

});
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector