doza_and
Янв. 6, 2012 10:15:07
Не подскажете существует ORM для pymongo?
Желательно чтобы поля остались видимы для mongo.
Используется что-нибудь из
MongoKit MongoEngine Minimongo Ming?
o7412369815963
Янв. 7, 2012 09:10:23
Пробовал - не понравилось, по мне “чистый” pymongo/asyncmongo лучше.
Особенно в высоко-нагруженных проектах, где “каждый” запрос будет оптимизироваться, orm будет только мешать.
А в последнем проекте, у меня на сервере нет почти никакой логики - просто передача данных от монги клиенту ( + проверка на доступ). вся логика у клиента: подгрузка, связывание, создание новых типов объектов…
Тут orm особо и не нужен.
doza_and
Янв. 7, 2012 12:35:16
Спасибо за совет. Я документацию всю прочитал тоже не понравилось. Привнесение валидаторов - просто еще один из множества способов поддержки целостности данных, а цена геморрой с модификацией схемы, как раз потеря того что было самого ценного в mongo. Но программирование под zodb и mongo тогда сильно различаются.
В zodb не теряется информация о типе объекта который в базе хранится, а в mongo теряется.
o7412369815963
Янв. 7, 2012 13:41:43
> В zodb не теряется информация о типе объекта который в базе хранится, а в mongo теряется.
Можно объекты определенного вида хранить в своих коллекциях. Ну или каждый объект можно подписать.
doza_and
Янв. 7, 2012 19:39:52
Да конечно, решения есть. В этом смысле Mongo предоставляет больше возможностей для настройки. В Zodb не избавишся от меток типов в объектах которые в базе лежат. а тут хочешь есть хочешь нет…
Еще раз спасибо за уделенное внимание.
Sleepwalker
Янв. 10, 2012 09:36:35
Возможно это не совсем то, что Вы ищете, но есть такой продукт Colander -
http://docs.pylonsproject.org/projects/colander/en/latest/Им вы можете замаппить ответы от pymongo и провести валидацию. С ним так же можно использовать deform для построения форм (при необходимости).
doza_and
Янв. 10, 2012 21:23:17
Большое спасибо, посмотрю.
По моим сообщениям думаю трудно понять что я ищу. В основном работаю с потоками данных с аппаратуры. SQL практически не нужен транзакции тоже потеря части пакетов тоже они и сами иногда теряются. Но данные достаточно сложные. А после обработки становятся еще сложнее. Поскольку много пишу на C++ привык работать с объектами - чтобы были и методы и полиморфизм.
Вот и смотрю как с ними сподручнее справляться.