pymongo查询列表元素_MongoDB3 mongoengine(基本使用, ReferenceField, EmbeddedDocument, 时间段查询) - 战斗小人...

本文介绍了如何使用MongoEngine这个ODM在Python中操作MongoDB,包括基本用法、引用字段、嵌入文档、时间段查询、分片和原始查询等。详细阐述了如何插入、查询、更新数据,以及如何处理ReferenceField和EmbeddedDocument。
摘要由CSDN通过智能技术生成

文章参考:https://blog.csdn.net/xc_zhou/article/details/80837962

mongoengine

简介

pymongo来操作MongoDB数据库,但是直接把对于数据库的操作代码都写在脚本中,这会让应用的代码耦合性太强,而且不利于代码的优化管理

一般应用都是使用MVC框架来设计的,为了更好地维持MVC结构,需要把数据库操作部分作为model抽离出来,这就需要借助MongoEngine

MongoEngine是一个对象文档映射器(ODM),相当于一个基于SQL的对象关系映射器(ORM)

MongoEngine提供的抽象是基于类的,创建的所有模型都是类

1基本使用

#pip install mongoengine    # 安装from mongoengine import *
connect('test', host='localhost', port=27017)
import datetime
class Users(Document):
    name = StringField(required=True, max_length=200)
    age = IntField(required=True)

users = () #返回所有的文档对象列表for u in users:
    print("name:",,",age:",)

5de8cd34e247b762bc3c387bfd09648a.png

 保存文档

from mongoengine import *
connect('test',host='localhost',port=27017)
class Users(Document):
    name = StringField(required=True,max_length=200)
    age = IntField(required=True)
user1 = Users(
    name='zz',
    age=11
)
()
print()   # zz
 = 'zz11'
()    # 保存后,age还是11print()   # zz11

a4729b179e272055b6398173595f0f36.png

 查询10=<年龄<30的,按姓名排列

from mongoengine import *
connect('test', host='localhost', port=27017)
import datetime
class Users(Document):
    name = StringField(required=True, max_length=200)
    age = IntField(required=True)
user_search = (age__gte=10, age__lt=33).order_by('name')
for u in user_search:
    print("name:",,",age:",)

查询10=<年龄<30的,按姓名倒序

from mongoengine import *
connect('test', host='localhost', port=27017)
import datetime
class Users(Document):
    name = StringField(required=True, max_length=200)
    age = IntField(required=True)
user_search = (age__gte=10, age__lt=33).order_by('-name')
for u in user_search:
    print("name:",,",age:",)

查询name=zz11

from mongoengine import *
connect('test', host='localhost', port=27017)
import datetime
class Users(Document):
    nam
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值