python中MongoEngine简单使用

news/2025/3/15 5:08:39/

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 截图

查看索引中的数据

在这里插入图片描述


http://www.ppmy.cn/news/596081.html

相关文章

如何修改植物大战僵尸文档

文章目录 一、安装相关软件二、打开文档所在三、修改文档1.修改文档的核心2.修改关卡3.修改金币4.解锁迷你游戏等5.解锁成就 一、安装相关软件 1.安装植物大战僵尸 2.安装Hex Editor Neo 二、打开文档所在 1.打开C盘,点击左上角的查看,点击隐藏的项目…

植物大战僵尸beta贝塔版

相信大家对于植物大战僵尸这款游戏不会感到陌生,直到现在还备受欢迎,但由于原作不会更新,众多玩家在玩了N遍经典版后有点乏味了,便有不少大佬开始在原作的游戏基础上进行强化修改,从而衍生出了植物大战僵尸beta版(下载…

植物大战僵尸音乐计算机简谱,植物大战僵尸主题曲简谱|植物大战僵尸主题曲:Zombies on Your Lawn...

【www.jianqiaoenglish.com--英语文化】 沪江英乐讯 热门游戏植物大战僵尸的设计师Geroge Fan的女友Laura Shigihara是一个职业游戏音乐制作人,她负责制作并演唱了植物大战僵尸这款游戏的主题音乐Zombies on Your Lawn Artist:Laura Shigihara Song&am…

【苏大C++第二次考试】

考试说明 考试时间:合计130分钟。选择题部分40分钟交卷,允许提前交卷。考试过程中,不能连接未经指定网站或服务器。闭卷考试部分,不能查阅任何类型的参考资料。开卷考试部分,可以查阅纸质文档,不能查阅任何…

MATLAB算法实战应用案例精讲-【自动驾驶】FMCW 雷达

目录 前言 几个高频面试题目 脉冲雷达和连续波雷达的区别特点,优缺点,以及应用场景?

GDAL 标记图像连接区域

文章目录 一、简介1.1原始算法1.2修改标记算法二、实现代码三、实现效果参考资料一、简介 1.1原始算法 标记图像连接区域的算法有很多,这里主要实现了一种基于扫描线的改进算法(Suzuki算法),原始算法使用了一种决策树策略,即对二进制图像b(x,y)进行重复传递,在前向和后向…

微服务 – Spring Cloud – Eureka – Discovery 服务发现

如何发现服务呢? 服务注册到 Eureka 集群中。需要通过 RestTemplate和@LoadBalanced 实现服务发现调用(http) 。 在上一篇笔记中,order 服务 通过 estTemplate和@LoadBalanced 实现调用 payment服务. 是通过注册在 Eureka 集群中的服务名称来调用的。 那么如何发现这些服务…

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步:更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表:sudo apt update升级已安装的软件…