Как вставить многоуровневую запись в mongodb через yii2

1

Например -
У меня ниже записи, которая будет вставлена в коллекцию

"panel_questions" : [
    {
        "question_id" : 1,
        "category_id" : 1
    },
    {
        "question_id" : 2,
        "category_id" : 1
    }
]

Через монго я могу достичь этого ниже query-

db.panel.update({"id":24},{$push:{panel_questions:{"question_id":2,"category_id":1}}});

Но как мы можем сделать выше запрос манго в YII2

Я уже пробовал код ниже, но он не работал

$this->update(
    [
             '$push'=>[
                         'panel_questions'=>[
                             'question_id'=>1,
                             'category_id'=>2
                         ]
                     ]
    ]
)
Теги:
yii2
mongodb-query

1 ответ

1

После обновления моего сознания пивом :) Мне удалось добавить новый массив в mongodb
Вот что я сделал.

$question = [
                            'question_id'=>Yii::$app->request->post('question_id'),
                            'category_id'=>Yii::$app->request->post('category_id'),
                    ];

// From collection which is already saved.
$panel_questions = $panel->panel_questions;

// Pushing new question into already saved questions (merging)
array_push($panel_questions, $question);

// Assigning whole question array to data so we can load them in model.
$data['Panel'] =['panel_questions'=>$panel_questions];

if($panel->load($data) && $panel->validate()){
      if($panel = $panel->save()) {
              // do stuff
      }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню