Ответ 1
У меня нет реального опыта или истории, но я играл как с MongoKit, так и с MongoAlchemy, и я лично решил попробовать MongoAlchemy, потому что мне нравится синтаксис немного лучше (вероятно, из-за моего наследия Django).
MongoKit
class BlogPost(Document):
structure = {
'title':unicode,
'body':unicode,
'author':unicode,
'date_creation':datetime.datetime,
'rank':int
}
MongoAlchemy
class BloodDonor(Document):
first_name = StringField()
last_name = StringField()
age = IntField(min_value=0)
gender = EnumField(StringField(), 'male', 'female')
blood_type = EnumField(StringField(), 'O+','A+','B+','AB+',)
Оба помогут вам проверить ваши данные, позволят вам навязывать что-то вроде схемы (только на уровне приложения) и сэкономит вам некоторую типизацию (в частности, скобки).
MongoKit более совершенен. Я выбрал MongoAlchemy, потому что я не хотел набирать structure = {}
все время, и указание вашего db и коллекции с помощью con.test.example.BlogPost()
просто было ошибочным (хотя вам этого не нужно).
Попробуйте оба варианта и выберите тот, который лучше работает для вас.
Как вы уже упоминали, существует расширение Flask-MongoAlchemy, которое отлично работает. Если вы хотите использовать MongoKit, отличная документация Flask поможет вам в кратчайшие сроки: http://flask.pocoo.org/docs/patterns/mongokit/
Самое замечательное в том, что вы можете просто попробовать, если вам это не нравится, вы можете переключиться на другой или отказаться от pymongo, не изменяя ничего в базе данных.