Как правильно организовать запись в MongoDb?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Как правильно организовать запись в MongoDb?

Сообщение Sergalas »

Есть задача потихоньку перейти с MySQL на mongodb сейчас, что бы не сбивать работу сайта пока переводим только товар, c дублированием его пока в две базы. Вопрос в следующем есть две модели Goods и Addfields в форме сохранения модели Good есть некоторые свойства модели AddFields в монго формируется следующий документ

Код: Выделить всё

"_id":"5a02d9afb2d45753294debc6",
"title":"Костюм женский 'Маргарита'",
"slug":"goods-Kostum-zenskij-Margarita",
"discription":"<p>Цвет: темно синий, светло бежевый, голубой, ментол, сиреневый, бордовый. Оттенки могут отличаться.</p>"
"product_id": 2576,
"addField":[
  "quote":"Цвет: темно синий, светло бежевый, голубой, ментол, сиреневый, бордовый. Оттенки могут",
  "size1":"48-50;52-54",
  "shop": "0",
  "composition":"дайвинг",
  "country":"Украина",
    "delivery":"3-5 дней",
    "site":"bole-ro",
  "winter""0",
  "spring":"0",
  "summer":"0",
  "fall":"0"
]
addField этого документа формируется как из свойств модели Good так и Addfields. И если с Goods мне все более или мение понятно и получилось. То с Addfields есть проблемы вот так я оформил запись монго (структура Addfield такая 'id','id_goods','key_field','value')

Код: Выделить всё

$product=Products::find()->where(['product_id'=>$this->id_goods])->one();
        $key=$this->key_feild;
        $product['addFeild'][$key]=$this->value;
        $product->save();
        parent::afterSave($insert, $changedAttributes);
но получаю следующую ошибку
Indirect modification of overloaded element of common\models\mongo\Products has no effect
ругается на эту строку

Код: Выделить всё

$product['addFeild'][$key]=$this->value;
что я делаю не так и как правильно ?
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Как правильно организовать запись в MongoDb?

Сообщение Йож »

Вы уверены, что должно быть именно "addFeild"?
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Re: Как правильно организовать запись в MongoDb?

Сообщение Sergalas »

Йож писал(а): 2017.11.18, 21:39 Вы уверены, что должно быть именно "addFeild"?
Важно как я назвал поле ? Проблема ведь не в этом а скорее в этом https://habrahabr.ru/post/103834/ что надо сказать обидно вся суть монго теряется.
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Как правильно организовать запись в MongoDb?

Сообщение Йож »

Не совсем в названии, а в том, что у Вас в первой части кода addField, а во второй и третьей addFeild. Может, это и не ошибка.
Просто обратил внимание..
Ответить