python中MongoEngine简单使用

文章介绍了Python的MongoEngine库,它作为MongoDB的数据映射工具,简化了数据操作。文中详细阐述了如何安装MongoEngine,设置MongoDB服务器,创建用户以及在Python中建立数据模型并保存数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 appdb
 
db.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 截图

查看索引中的数据

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值