ODM

object document mapping, 对象文档映射. 类似于关系型数据库的ORM

MongoDB的ODM

  • PyMODM
  • MongoEngine

基于MongoEngine的ODM

from mongoengine import connect, Document, StringField, IntField, \EmbeddedDocument, FloatField, ListField, EmbeddedDocumentFieldconnect('student')SEX_CHOICE = (('male', '男'),('female', '女')
)class Grade(EmbeddedDocument):'''成绩'''course = StringField(required=True)score = FloatField(required=True)class Student(Document):'''学生'''name = StringField(max_length=32, required=True)age = IntField(max_length=10)sex = StringField(choice=SEX_CHOICE, required=True)address = StringField()# grade = ListField(FloatField())grades = ListField(EmbeddedDocumentField(Grade))meta = {'collection': 'students','ordering': ['-age']}class OdmHelper(object)def get_one(self):'''查询一条数据'''return Student.objects.first()def get_many(self):'''查询多条数据'''return Student.objects.all()def get_from_oid(self):'''根据ID查询数据'''return Student.objects.filtet(id=1).first()def add_one(self):'''增加数据'''math = Grade(course='数学', score=95)english = Grade(xourse='英语', score=89)stu = Student(name='zhangsan', age=21, sex='male', grades=[math, english])stu.save()return studef update(self):'''修改一条数据'''obj = Student.objects.filter(age=20).update_one(age=22)'''修改多条数据'''obj = Student.objects.filter(age=20).update(age=22)return objdef delete(self):'''删除数据'''obj = Student.objects.filter(sex='male').first().delete()obj = Student.objects.filter(sex='male').delete()

ODM 对象文档映射相关推荐

  1. (八)ElasticSearch之文档映射

    文章目录 一. 文档映射的原理 二. 映射的分类 2.1 动态映射 2.2 静态映射 三. ES类型支持 3.1 基本类型 3.2 复杂类型 3.2.1 地理位置类型(Geo datatypes) 3 ...

  2. neko虚拟机对象文档与扩充

    2019独角兽企业重金招聘Python工程师标准>>> vobject neko 中对象是一种优化的hash表,在虚拟机中类型映射的值是 4 ,数据内部在存储的时候和lua中的tab ...

  3. SAP ABAP 查找更改文档对象(SCDO)和表关系的在线字典1/2(全)

    SAP ABAP 查找更改文档对象(SCDO)和表关系的在线字典1/2(全) 简介: 一个 SAP 更改文档对象(SCDO:SAP Change Document Object )由一组更改表和更改设 ...

  4. Java 中的 XML:Java 文档模型的用法

    Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...

  5. 在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入

    MongoDB,被归类为NoSQL数据库(其实我更觉得MongoDb是介于关系型数据库和非关系型数据库之间,此外,在我看来在很多场景中MongoDb都可以取代关系型数据库.),是一个以类JSON格式存 ...

  6. 第11章:MongoDB-CRUD操作--文档--查询

    ①语法 db.collection.find(query, projection) ②参数 query :可选,使用查询操作符指定查询条件 projection :可选,使用投影操作符指定返回的键.查 ...

  7. gettext()方法输出空白_如何将文档内容输出为无水印图片?超简单的操作方法看这里...

    在实际的工作生活中,我们可能会遇到这样的情况:文档内容太多,想截图以图片的形式展现,但是文档超过一屏无法全部截取,将其保存为图片的形式,但使用WPS将文档直接输出为无水印图片需要开启WPS会员. 一连 ...

  8. 《微软文档管理解决方案2007》之一:安装部署 - [SharePoint Server]

    微软在2007年底发布了几个基于MOSS 2007的解决方案(具体参看:http://bbs.msotec.net/ShowForum.aspx?ForumID=39). 最近就其中的"微软 ...

  9. word2vec相似度计算_文档相似度助力搜索引擎

    几种简单相似度算法: 1.简单共有词判断 假设现有文本A和B,将A.B经过分词.去停用词之后形成集合A={a1,a2,...,an}和集合B={b1,b2,...,bn}.用NUM(A∩B)表示集合A ...

最新文章

  1. golang 安装一个项目下的所有依赖
  2. mysql的语句分类,查询、子查询及连接查询
  3. 【译】The Faults and Shortcomings of the EVM
  4. QT的QGLFunctions类的使用
  5. linux的sh文件怎么执行,linux下执行sh文件的四种做法
  6. java怎么配置哨兵模式_redis 哨兵模式配置与spring集成
  7. python安卓版开发环境搭建_React Native Android 开发环境搭建(Windows 版)
  8. mysql中数据类型的长度
  9. Authlib OAuth2.0
  10. redis集群内部的带宽消耗
  11. IOS逆向之汇编基础
  12. 关于苹果手机打开钉钉小程序中处理的日期显示invalid date
  13. 计算机科学主题 一亩三分地 每日答题 题库
  14. node-telegram-bot-api 基于Nodejs的TG机器人
  15. 比较详细的Mencoder命令行使用
  16. 优秀生被批评后“自闭”一个月 挫折教育不可少
  17. 10-集合(核心类库)
  18. Linux的文件系统(磁盘标准分区)
  19. 智能照明的新进展和解决方案
  20. 每天一个Linux命令(22):文件属性详解

热门文章

  1. python手写数字识别实验报告_Python代码实现简单的MNIST手写数字识别(适合初学者看)...
  2. 牛客练习赛46-华华跟奕奕玩游戏(期望+逆元)
  3. C语言结构体中的冒号用法
  4. BOSS创投社群:要想成为富人,得改变原有思维,谈谈什么是富人思维模式!
  5. 学习笔记之MyEclipse里各个文件名前的小标记都代表的意思
  6. 中文标点符号unicode码
  7. MATLAB回归分析命令——regress命令
  8. tensorflow的regress(超详细教程)
  9. python kivy 控件(小部件)的属性集合
  10. 这个年龄计算程序相当不科学,体验还是差差哒