Чтобы добавлять сообщения и комментарии, .

@ComradeDOS:
ComradeDOS

Пришлось отказаться от mongokit по причине его неадекватности. Перешел на использование mongoengine. Вполне доволен. ORM мимикрирует под Django ORM.

@demiazz:
demiazz

Ну вот. Человек взялся за Flask-Mongokit. Времени у меня сейчас и есть и нет. Но. Есть желающие помочь человеку в его нелегком деле? Адрес репозитория: bitbucket.org =))) думаю, он будет рад помощи. ;)

@demiazz:
demiazz

В свое время, когда писал диплом еще на Flask, я наваял очень простенький плагин для Flask для интеграции его с Mongokit. И забыл. Сейчас пришло письмо от англоязычного разработчика, который даже поинтересовался буду ли я развивать проект дальше, или он может использовать это имя для написания нового хорошего плагина. Ну а так как, я вряд ли смогу сейчас этим заняться, и думаю у человека энтузиазма больше, как и опыта — то с радостью за Flask и MongoKit дал ему зеленый свет и пожелал удачи. И я буду чертовски рад, если для Flask скоро появится хорошее и классное расширение. =)

@demiazz:
demiazz

Olalala... MongoMapper умеет кастомные типы _ Прям как MongoKit )))) в Mongoid кажется такого нет )

@demiazz:
demiazz

В общем новость для тех, кому не безразлична mongodb на Python ) В новой версии MongoKit готовится вкусная вещь schemaless документов. Она позволит получать документы частями, а не в сыром виде напрямую из pymongo как раньше. По словам автора, кажется уже работает и можно пробовать )

@demiazz:
demiazz

Не могу нарадоваться на @namlook — разработчика Mongokit. Буквально только что, получил ответ в тви, с советами для решения моих проблем. Причем я пишу на русском, а он француз. Гордость и пример для любого разработчика, я считаю. И спасибо ему, за его старание )

@demiazz:
demiazz

Мне кажется, или MongoKit не умеет возвращать документы по частичным запросам? То есть, когда явно указываются поля которые нужны или нет

@demiazz:
demiazz

Монгокит выносит мозг. Сделал запрос и получил выборку постов в виде курсора. ОК. Передаю курсор в шаблон. В шаблоне перебираю по итератору курсора элементы. А он мне падла выдает ошибку, что элемент возвращаемый курсором — это курсор Оо че за нахуй >_<

@demiazz:
demiazz

Фак... Ну почему у меня руки из жопы ( только недавно сделал для себя тест с вложенными словарями и прочим нужным мне, чтобы проверить поведение. Все ОК. Написал почти тот же код (основное все то же) — и х*й. ((( ошибки полезли (((

@demiazz:
demiazz

В связи с некоторыми затруднениями с DBRef и autoreference, в голове проявляются мысли в сторону голого pymongo. Но надо бы еще попробовать Ming. Единственно, что я не нашел там, это where и mapreduce и where... Надо смотреть код изнутри, так как там, Cursor — это proxy к pymongo.Cursor, то возможно, что они там работают из коробки. Да. Жаль MongoDB пока так молода, как и ее инструменты, и пока только ищутся подходы к реализации хорошего API для ORM.

@demiazz:
demiazz

Решил таки проблему. Итак. К примеру вы хотите модель со следующей структурой, и использованием автореференсинга: structure = {... 'comments': [{'author': UserDocument, 'text': unicode, 'created': datetime.datetime'}] ..., то есть нужен массив словарей с определенной структурой. У меня с таким объявлением, при обработке курсора в шаблоне вываливался KeyError на комменты. Массив инициализировался как пустой. Решить как по умному, я не нашел. Так что, решил просто. 'comments': dict. Так не будет валидации, но и работает все как надо. Хотя, думаю данные прежде чем записать в базу, пройдут еще вашу валидацию, например при получении данных с веба. ) вот как то так

@demiazz:
demiazz

MongoKit немного расстроил. В структуре описал список, со вложенным словарем, с заранее определенными полями. Но он гонит ошибки на это. Либо не понимает DBRef в нем ((( жаль

@demiazz:
demiazz

если я правильно понял схему работы курсоров, то успешно портировал пагинатор с джанги... Жить становится легче :)

@demiazz:
demiazz

А в MongoKit есть возможность делать запросы по полям встроенных документов?

@demiazz:
demiazz

Жуйк, я идиот. Искал весь вечер ошибку и писал тесты, а оказалось то, что в месте, где у меня неправильно работало, я просто ошибся в названии свойства на одну букву Оо FUUUUUUUUUUUUUUUUUUUUUU

@demiazz:
demiazz

Эксперименты с autoref в MongoKit привело меня к результатам не утешительным, как минимум для меня. В чем вывод: если вы используете "встраивание" документов один в другой, то, встраивание — это лишь сохранение копии в другом документе. Потому что, при изменении источника, встроенная ссылка выдает старые результаты ((( Может я все таки не так что то сделал, но пока результаты такие у мну...

@demiazz:
demiazz

Вот уже третий день бился над проблемой. Пытался делать из вьюхи запрос к коллекции и получал исключения. А на деле, исключение было в месте, где я полученный документ пытался сохранить в сессию, и при редиректе в другой вьюхе вывести его как строку. Делал собственно это я для себя, как говорится ради пробы пера, но долго недоумевал в чем проблема. Какой же я идиот :(

@demiazz:
demiazz

Решил написать плагин для Flask, для интеграции mongokit. Пока все слабо, но есть задумка сделать опциональный менеджер баз, как у Django, то есть возможность юзания нескольких серверов. При этом использовать ленивое создание подключений, то есть по запросу. =) Надеюсь получится =)))

@demiazz:
demiazz

Кстати. еще тут наткнулся на расширение фласка — авторизация. там бэкэнд на mongoengine, и нет такого кода типа connection.Model.fetch() и так далее. Там просто сразу берется Model.запрос. В монгоките такое можно как нить замутить?

@demiazz:
demiazz

Все пытаюсь связать Flask с MongoKit. Меня бесит, что приходится модели регистрировать явно. Не. Можно конечно использовать декоратор mongokit для классов документов. Но для этого ему нужно соединение. А соединение хранится в Flask.g, который доступен только в рантайме и не None, только когда все это дело находится во вьюшке. Взрыв мозга. И никак не могу прикрутить декоратор к этим вьюхам. То ли я идиот, то ли чего то не понял про Flask ._. придется глубже копнуть Werkzeug.

@kb:
kb

Прочитал я про этот ваш MongoKit (в смысле полную документацию, до 3 ночи, ага :). Хорош, собака, очень хорош. Если раньше позиция была "ну, если сложная логика — юзать MongoKit, в остальном — PyMongo", то теперь: "только в случае очень высоких нагрузок (таких, что аж о питоне задумываешься как о тормозе) юзать pymongo, в остальном — mongokit же!".

Ну очень годно сделано (и забавно французик документацию написал, прям видна национальность :-).

@iorlas:
iorlas

Ленивая миграция(http://bytebucket.org/namlook/mongokit/wiki/html/migration.html) работает как нужно! Как же это круто.

@iorlas:
iorlas

ValueError: Error in indexes: can't find parent_id in structure, блеать

@iorlas:
iorlas

hmarr.com Новый MongoDB ORM для Python. Говорят шустрее MongoKit. Хотя пока мне больше симпатизирует MongoKit в силу удобства описания структуры данных документа, индексов и устройства мигрирования на основе апдейтов.