Форум сайта python.su
Имею документ с такой структурой. { "key": "value", "mykey": "myvalue", "dict": { "dict1": "val1", "dict2": "val2", "dict3": "val3"} } Подскажите, пожалуйста, как мне изменить значение val2. Пытался написать тьму вариантов самостоятельно, но успехом это не увенчалось, как и гугление. з.ы. Прошу прощения за однострочный код - в форме ввода не форматируется что-то
Отредактировано rater (Июнь 21, 2013 19:56:09)
Офлайн
А какие варианты пробовали?
Если документ уже выбран из базы, просто как в словаре меняется значение, и передается в save()
doc['dict']['dict2'] = 'new val' col.save(doc)
Офлайн
reclosedev, спасибо, не знал, что можно так. Проблема решена.
Офлайн
> Если документ уже выбран из базы, просто как в словаре меняется значение, и передается в save()
Только надо быть готовым, что в один прекрасный день у вас вдруг начнут пропадать изменения данных, если вы будете обращаться таким способом к одному и тому же объекту из разных процессов-тредов.
Офлайн
Спасибо, это Вы очень вовремя - уже успел понаблюдать такую картину, после изучения своих исходников раз за разом решил остановится на update(), т.к. проблем в коде не обнаружил. Теперь пришло здравое объяснение.
Офлайн