python中MongoEngine简单使用
1 MongoEngine介绍
MongoEngine是一个处理MongoDB的对象文档映射器。pymongo是非面向对象的方式操作数据。
MongoEngine开发文档
# 开发文档
http://docs.mongoengine.org/index.html# 数据类型
http://docs.mongoengine.org/apireference.html#fields# 初始化映射器类,包括设置meta属性
http://docs.mongoengine.org/guide/defining-documents.html
python安装mongoengine
pip install mongoengine -i https://pypi.tuna.tsinghua.edu.cn/simple
2 安装MongoDB
2.1 安装MongoDB
# 创建MongoDB
# --auth:设置数据库登录权限
sudo docker run -itd \
--restart always \
--name my_mongodb \
--privileged=true \
-p 27017:27017 \
-v /home/mongodb/configdb:/data/configdb \
-v /home/mongodb/data:/data/db \
-v /home/mongodb/backup:/data/backup \
mongo:4.2.8 --auth
2.2 初始化数据库
# (1)进入mongo Shell
# --host 127.0.0.1可以省略
mongo --host 127.0.0.1 --port 27017# (2)切换数据库
use admin# (3)创建用户
# 用户名;root, 密码:123456
# 注意:此处的账号和密码会管理所有的数据库
db.createUser({user:'root', pwd:'123456', roles:[{role:'clusterAdmin', db:'admin'},{role:'dbAdminAnyDatabase', db:'admin'},{role:'userAdminAnyDatabase', db:'admin'},{role:'readWriteAnyDatabase', db:'admin'},{role:'root', db:'admin'}]})# (4)授权
db.auth("root", "123456")# (5)创建应用数据库和用户
# 连接库直接使用相应库中的用户名称即可,如果仅仅使用appdb库,直接使用user=mason,pwd=123456连接即可use appdbdb.createUser({user:'mason', pwd:'123456', roles:[ {role:'dbOwner', db:'appdb'} ]})# (6)创建数据库并插入数据
# 查看所有数据库
show databases# 查看当前数据库
db# 切换数据库
use appdb
3 python源代码
使用mongoengine的EmbeddedDocument和Document向索引中插入文档
from mongoengine import connect, Document, StringField, EmbeddedDocument, IntField, EmbeddedDocumentField# 连接MongoDB数据库
connect(db="appdb",host="192.168.108.200",port=27017,username="mason",password="123456",
)# 设置嵌入式文档类
class Author(EmbeddedDocument):# 注意:参数“comment”是随便定义的,只要不与默认参数冲突即可name = StringField(comment="用户姓名")age = IntField(comment="用户年龄")# 实体类
class Article(Document):# 注意:参数“comment”是随便定义的,只要不与默认参数冲突即可# 注意:尽量不用关键字“id”,会与mongodb中的“_id”冲突# id = StringField(required = True, comment="文献编号")title = StringField(required = True, comment="文献标题")summary = StringField(required=True, max_length = 500, comment="文献摘要")keywords = StringField(required=True, comment="文献关键词")# 使用嵌入式文档author = EmbeddedDocumentField(Author, comment="作者信息")# 设置文档的基本信息meta = {"comment": "文献集合",# 设置集合"collection": "article"}# 设置数据
article = Article()
article.title = "文献标题1"
article.summary = "文献摘要1"
article.keywords = "关键词1"author = Author()
author.name = "张三"
author.age = 10
article.author = author# 添加数据
article.save()
4 截图
查看索引中的数据