python中MongoEngine简单使用

news2024/11/15 12:32:33

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

查看索引中的数据

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel 2019访问SQL Server数据库的实现过程

源之:https://vip.kingdee.com/article/288066926977041920?productLineId11 在日常ERP系统实施过程中,往往会遇到客户的一些个性化需求,比如有些客户习惯用Excel电子表格来查看ERP系统中的数据,业余拓展学习了一下,借…

STM32cubeMX配置工程(全过程+修改MCU方法+注意事项)

1.修改默认的固件包下载路径,避免占用C盘空间 2、选择ACCESS TO MCU 3、在跳出的界面中的Part Number中搜索对应的芯片型号 4、选好后在右下角双击对应的芯片,然后跳出配置界面 左边可以配置外设,右边可以配置每个IO口的功能 System Core包括…

java之路——带你了解SpringSecurity安全框架与基本应用

文章目录 一、什么是SpringSecurity二、SpringSecurity的主要应用场合三、springsecurity代码步骤 一、什么是SpringSecurity **Spring Security是一个功能强大的开源框架,用于在Java应用程序中实现身份验证和授权功能。它提供了一套全面的安全性解决方案&#xff…

java设计模式(二十三)访问者模式

目录 定义模式结构角色职责代码实现适用场景优缺点定义 访问者模式是一种行为型模式,它允许你定义一个作用于某个对象结构中的各个元素的操作,而同时又不改变这些元素的类。该模式的核心思想是将数据结构与数据操作分离,从而可以在不改变数据结构的前提下定义新的操作。 模…

【爆肝四万字!操作系统原理95+】期末考试知识点超超全总结

本文涵盖了笔者本学期学习“操作系统原理”课程的所有重要内容,还包含了一定量的经典例题。纯干货,不废话!目的在于知识的记录,便于今后的回顾,同时也希望对即将考试的朋友们有帮助。 目录 操作系统概述 操作系统的…

前端Vue自定义加载中loading加载结束end组件 可用于分页展示 页面加载请求

前端Vue自定义加载中loading加载结束end组件 可用于分页展示 页面加载请求&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13219 效果图如下&#xff1a; 实现代码如下&#xff1a; # cc-paging #### 使用方法 使用方法 <!--…

Floyd 算法研究(P 矩阵详解)

Floyd 算法研究 理论基础 求最短路径Floyd算法&#xff01; Floyed&#xff08;floyd&#xff09;算法详解 Floyd-傻子也能看懂的弗洛伊德算法 最短路径Floyd算法【图文详解】 最短路径问题—Floyd算法详解 算法&#xff1a;最短路径之弗洛伊德&#xff08;Floyd&#xff09;算…

DS18B20数字温度传感器的工作原理引脚及功能实物读取温度原理图

DS18B20温度传感器仿真图 . . . . 功能描述&#xff1a; 1 本实验采用DS18B20作为温度检测模块&#xff0c;51单片机&#xff0c;液晶1602显示&#xff0c;报警电路&#xff0c;按键电路。 2 液晶上面T代表温度&#xff0c;H代表上限值&#xff0c;L代表下限值 3 这个上下限值…

阿里云安全提醒:网站涉及违法不良信息该怎么办

北京某客户的网站突然收到阿里云的短信告警说&#xff0c;【阿里云】尊敬的********qq.com:您网站www.*******.com涉及违法不良信息&#xff0c;请尽快核查清理&#xff0c;详见站内信及邮件。客户有点懵&#xff0c;不知道为何会收到这样的一条短信&#xff0c;但阿里云也不会…

LTV-61L-ASEMI代理台湾光宝高速光耦LTV-61L

编辑&#xff1a;ll LTV-61L-ASEMI代理台湾光宝高速光耦LTV-61L 型号&#xff1a;LTV-61L 品牌&#xff1a;台湾光宝 封装&#xff1a;LSOP-6 引脚数量&#xff1a;6 类型&#xff1a;光耦 特性&#xff1a;台湾光宝、IGBT驱动器、储能专用光耦&#xff3c;高速光耦 封…

怎么一键远程访问无人值守电脑?

远程办公和无人值守的远程访问 如今&#xff0c;远程办公越来越人们所熟知。远程办公需要在没有其他人帮助的情况下访问您的办公室计算机并接受远程请求。那么如何从外面完成对办公室电脑的无人值守远程访问呢&#xff1f; 众所周知&#xff0c;远程桌面使您能够通过…

基于SpringBoot的点餐系统的设计与实现(源码+数据库+文档+说明)

系统主要采用了 Spring Boot、 Mybatis的框架&#xff0c; MySQL作为开发数据库&#xff0c;利用 MVC的设计理念&#xff0c;实现了管理端管理员工及菜品信息发布、员工账号菜品信息发布及配送、移动端查看菜品信息及消费等基本的功能需求。 关键技术介绍 操作系统&#xff1…

【Visual modflow Flex】地下水数值模拟及参数优化、抽水实验设计与处理、复杂的饱和/非饱和地下水流分析实践技术

本次地下水数值模拟软件的应用&#xff0c;主要围绕目前应用较为广泛的Visual Modflow Flex 系列版本开展&#xff0c;结合具体应用场景&#xff0c;实例讲解软件的全流程应用过程&#xff0c;包括数据处理分析、数值模型构建以及模拟结果的输出等。通过建模篇、优化篇、真实案…

Evoto AI 图像编辑软件 - 女性人像选项(英中对照)

Female 女性 Blemish Removal 瑕疵修复 Freckle & Acne 雀斑与痘痘 Face Mole 面部痣 Body Blemish 身体瑕疵 Fixing Oily Face 修复油脸 Face Forehead Wrinkle 面部额头皱纹 Eye Wrinkle 眼部皱纹 Dark Circle 黑眼圈 Smile Line 笑纹&#xff0c;法令纹 Neck Wrinkle 颈…

【从零开始学习JAVA | 第二十篇】常见API介绍 Math

目录 前言&#xff1a; MATH: Math类中的常用方法&#xff1a; 总结&#xff1a; 前言&#xff1a; 本篇往后我们会详细介绍一些常用的API&#xff0c;今天我们介绍的是Math的常用方法。但是其实我们不需要记住所有的方法&#xff0c;在日常工作中自己学会查询API文档就可以…

Docker 安装 Mysql 数据库

一、官方推荐安装方式&#xff1a; 1、执行 docker pull mysql:5.6 命令&#xff0c;下载 mysql 镜像&#xff0c;如下所示&#xff1a; 2、执行命令&#xff0c;创建并启动 mysql 容器 docker run -d --name mysql5.6-3306 -p 3307:3306 -e MYSQL_ROOT_PASSWORD123456 mysq…

Linux tracing之内核vsyscallvdso机制分析

由于内核运行在受保护的地质空间上&#xff0c;Linux系统中的用户空间程序无法直接执行内核代码&#xff0c;不能直接调用内核空间中的函数&#xff0c;因此&#xff0c;应用程序以某种方式通知系统&#xff0c;告诉内核自己需要执行一function&#xff0c;希望系统系统切换到内…

亚马逊、沃尔玛测评防关联、防封号环境的底层技术原理

大家好我是亚马逊测评珑哥&#xff0c;今天我给大家讲一下做亚马逊、沃尔玛测评、采购、退款需要用到的防关联、防封号环境的一些底层技术原理。这里讲的内容我相信很少有人能掌握&#xff0c;都是一些比较难的IT术技。 近期很多做测评、采购、退款、撸卡、撸货的朋友加我&…

小程序代码审核新手入门篇

微信小程序在注册完成&#xff0c;需提交代码审核通过才能顺利发布&#xff0c;小程序从开发到发布的具体流程&#xff1a;微信小程序完成注册、信息设置、类目设置后&#xff0c;代码提审从开发到发布一般要经过&#xff1a;预览-> 上传代码 -> 提交审核 -> 发布等步…

vue axios 同步请求

创建目录scr/api/http2 创建scr/api/http2/ndex.js import axios from axiosconst url "http://xxx.com:9000/"; let data export default {apipost(uri, params) {var that this return new Promise((resolve, reject) > {axios.post(urluri, {appkey:sssa,…