Найти - Пользователи
Полная версия: Изменение значения во вложенном словаре. MongoDB
Начало » Базы данных » Изменение значения во вложенном словаре. MongoDB
1
rater

Имею документ с такой структурой. { "key": "value", "mykey": "myvalue", "dict": { "dict1": "val1", "dict2": "val2", "dict3": "val3"} } Подскажите, пожалуйста, как мне изменить значение val2. Пытался написать тьму вариантов самостоятельно, но успехом это не увенчалось, как и гугление. з.ы. Прошу прощения за однострочный код - в форме ввода не форматируется что-то

reclosedev
А какие варианты пробовали?
Если документ уже выбран из базы, просто как в словаре меняется значение, и передается в save()
doc['dict']['dict2'] = 'new val'
col.save(doc)
Можно и через update()

https://www.google.ru/search?q=mongo%20update%20nested%20document
rater

reclosedev, спасибо, не знал, что можно так. Проблема решена.

lorien
> Если документ уже выбран из базы, просто как в словаре меняется значение, и передается в save()

Только надо быть готовым, что в один прекрасный день у вас вдруг начнут пропадать изменения данных, если вы будете обращаться таким способом к одному и тому же объекту из разных процессов-тредов.
rater

Спасибо, это Вы очень вовремя - уже успел понаблюдать такую картину, после изучения своих исходников раз за разом решил остановится на update(), т.к. проблем в коде не обнаружил. Теперь пришло здравое объяснение.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB