Mongoengine的介绍
MongoEngine是一个对象文档映射器(ODM),相当于一个基于SQL的对象关系映射器(ORM)
pymongo来操作MongoDB数据库,但是直接把对于数据库的操作代码都写在脚本中,这会让应用的代码耦合性太强,而且不利于代码的优化管理
一般应用都是使用MVC框架来设计的,为了更好地维持MVC结构,需要把数据库操作部分作为model抽离出来,这就需要借助MongoEngine,MongoEngine提供的抽象是基于类的,创建的所有模型都是类
我们可以跟关系型数据库的Python客户端MySQLdb,以及ORM SQLAlchemy/Django ORM比较一下,PyMongo相当于MySQLdb,MongoEngine相当于SQLAlchemy,SQLAlchemy是基于MySQLdb之上的,MongoEngine是基于PyMongo的.
文档类型
详情请见:
https://www.cnblogs.com/sticker0726/articles/11407755.html
数据库的配置
数据库的连接方式
from mongoengine import connect # 方式一:本地数据库 connect('sticker') # 连接数据库,该数据库不需要先创建,在你传数据的时候自动创建,可以传一个alias别名,如果你不传默认使用default #方式二:数据库需要验证并且不在本地 connect(alias='别名',name="数据库名", host="主机名",port=端口号,username=,password=) #方式三 #URI样式连接也被支持 - 只需提供URI作为host: from mongoengine import connect connect ('project1' , host = 'mongodb:// localhost / database_name' ) # 第一种把数据库名字写到host中 connect(host='mongodb://127.0.0.1:27017/test2') # 第二种把数据库名字当做connect的第一个参数 connect('test1',host='mongodb://127.0.0.1:27017/') # 第一个参数为:连接的数据库名字
数据库的增删改查
详情见:https://www.cnblogs.com/sticker0726/articles/11409659.html
字段
字段类型
详情见:https://www.cnblogs.com/sticker0726/articles/11407755.html
字段参数
#一下参数可以在任意的字段中 db_field (默认:无)MongoDB字段名称。 required (默认:False)如果设置为True,并且该字段未在文档实例上设置,ValidationError则在验证文档时将引发a 。 default (默认:无)未为此字段设置值时使用的值 unique (默认:False)如果为True,则该集合中的任何文档都不会具有该字段的相同值。 unique_with (默认:无)与此字段一起使用的字段名称(或字段名称列表)将不会具有相同值的集合中的两个文档。联合查询 primary_key (默认:False)如果为True,则使用此字段作为集合的主键。 DictField 和EmbeddedDocuments都支持作为文档的主键。如果设置,该字段也可通过PK字段访问 choices (默认:无)一个可迭代的(例如列表,元组或集合)选项,这个字段的值应该被限制到这个选项。
关于choice这个和Django中的choise是一样的
浙公网安备 33010602011771号