TODO
项目地址:: TODO ref
mongodb本身是无模式的,但是使用时都要在application层实现模式约束.
mongoengine是个mongodb ORM库。已相当成熟稳定, 使用广泛, 开发活跃. 性能相对也不错(可以参见项目下的bench).
使用下来发现mongoengine还是很不错的库,但是有部分特性使用起来并不方便.
mongoengine问题
索引问题
索引应该跟document分开.并且有自动化建立和删除的command.
把索引定在Document/meta/indexes里很糟糕:
-
写法很乱,不易管理。
-
有时会失效,没有建立对应的索引
listField校验问题
listField没法做长度限制 set/sortset/max-len list/ sort-list等结构没有实现
不支持自定义字段验证/文档级验证
pre_save/after_save hooks
不可存储的EmbdDocumment
TODO 待考虑
可扩展的Document
TODO 待考虑