0

mongodb ドライバーを使用して、_id フィールドを参照してデータベースを更新しようとしています。

私のコード

function update_attributes($id, $data){
        $this->db_model->where('_id', $id);
        $this->db_model->updates = array('$set' => array($data));
        $query = $this->db_model->update('dff');
        return $query;
}

$データ

$form_data = array(

                            'name' => set_value('name'), 
                            'description' => set_value('description')
                        );

$dfff = Dfff::update_attributes($this->input->post('id', TRUE), $form_data);

ただし、データベースは更新されません。私はエラーが発生します

Update of data into MongoDB failed: localhost:27017: Invalid modifier specified: $set

問題はどこだ ??mongodb ドライバー - alexbilbie の使用

4

2 に答える 2

1

[解決しよう]関数に指定された _id のデータ型update_attributesは文字列でしたが、データベースのデータ型は int32x です。したがって、データ型が一致しなかったため、更新が失敗していました。int32x としても機能するデータ型を作成します。更新に成功しました。以前は次のように変更されました。

$dfff = Dfff::update_attributes($this->input->post('id', TRUE), $form_data);

id のデータ型を変更した後:

$dfff = Dfff::update_attributes($id, $form_data);
于 2013-10-17T11:06:00.907 に答える