【问题标题】:How to insert multi-level record in mongodb via yii2如何通过yii2在mongodb中插入多级记录
【发布时间】:2015-11-17 15:30:00
【问题描述】:

例如 -
我有以下要插入到集合中的记录

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

通过 mongo,我可以通过以下查询来实现这一点-

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

但是我们如何在 YII2 中进行上述 mongo 查询

我已经尝试过下面的代码,但它没有工作

$this->update(
    [
             '$push'=>[
                         'panel_questions'=>[
                             'question_id'=>1,
                             'category_id'=>2
                         ]
                     ]
    ]
)

【问题讨论】:

    标签: php mongodb yii2 mongodb-query


    【解决方案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
          }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多