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是一样的

posted on 2019-09-24 17:40  程序员一学徒  阅读(348)  评论(1)    收藏  举报