Форум сайта python.su
Использую MongoDB вперые и столкнулся с непонятной трудностью.
Из MySQL при помощи довольно тяжелых запросов, достаются массивы данных и складываются в mongo. И порядок column в результате важен.
В mongo я сохраняю данные именно в этом порядке, с точки зрения структуры, это объект, с массивом вложенных объектов.
Но при доставании данных через find, полученный вложенный объект отсортирован по ключам в алфавитном порядке. Причем сохраняется он в правильном порядке, сортировка судя по всему по-умолчанию, именно при получении.
https://prnt.sc/fvs0z1
Можно ли каким-то образом игнорировать ее и доставать объекты as is?
Заранее спасибо за ответы.
Отредактировано Vort (Июль 14, 2017 22:29:18)
Прикреплённый файлы: ttt.JPG (31,3 KБ)
Офлайн
У тебя список словарей. Словари не сортируются.
P.S. В ключах используй только ASCII символы и делай их как можно короче.
Офлайн
Vort
никак. Для начала. на скришоте видно что и алфавитного порядка там нет. Визуализация в Robomongo (Robo3T) только будет реализована в алфавитном, и то по жалобам трудящихся, но сами данные хранятся в не сортированном виде. И по другому никак. Так как это по питонячи говоря классический словарь (хэш таблица).
Офлайн
JOHN_16Да, алфавитного порядка в монго нет, и это то, что мне нужно. Чтобы сохранить нужный мне порядок, выборка из MySQL делается через OrderedDict и он же потом передаётся в mongo. Ещё не вникал в тонкости реализации PyMongo, но вижу, что нужный мне порядок ключей вложенных объектов сохраняется.
Vortникак. Для начала. на скришоте видно что и алфавитного порядка там нет. Визуализация в Robomongo (Robo3T) только будет реализована в алфавитном, и то по жалобам трудящихся, но сами данные хранятся в не сортированном виде. И по другому никак. Так как это по питонячи говоря классический словарь (хэш таблица).
Офлайн
Уважаемый Vort вы похоже не читаете то что вам пишут:
JOHN_16Те никакого порядка не гарантируется. Вы засунете еще один элемент в хвост, при запросе он имеет право выйти первым или в середине. Вполне может быть что они вначале будут сохранять порядок добавления, а на сотом добавлении все перемешаются и т. п.
сами данные хранятся в не сортированном виде
VortПозвольте поинтересоваться что вы предприняли чтобы сохранить заданный порядок записей в MySQL?
Чтобы сохранить нужный мне порядок, выборка из MySQL делается через OrderedDict
Отредактировано doza_and (Июль 15, 2017 15:18:29)
Офлайн
doza_andЯ читаю, и спасибо за попытки помочь и вразумить, ))
Уважаемый Vort вы похоже не читаете то что вам пишут:
Офлайн
Vort
1300 объектов это вообще пустяки. Почему для вас важно сортировать данные именно при запросе инструментами БД? Сортируйте их питоном после получения.
Офлайн
FishHookНа этапе разработки я искусственно ограничил их количество )
Vort1300 объектов это вообще пустяки. Почему для вас важно сортировать данные именно при запросе инструментами БД? Сортируйте их питоном после получения.
Офлайн
VortВозможно я не совсем вас понимаю.
Речь о ключах вложенного объекта.
Отредактировано doza_and (Июль 15, 2017 20:31:50)
Офлайн
Это тебе надо попробовать сделать на Ui , там должен заработать )
Офлайн