MongoEngine

PyMongoMongoEngine
 PyMongo是一个低级的MongoDBPython驱动器(我一般称为客户端),它封装了 MongoDB API,并通过JSONMongoDB通信,PyMongoMongoDB的数据映射成Python的内置类型。

      MongoEngine 是一个Document-Object Mapper (想一下ORM, 但它是针对文档型数据库),Python通过它与MongoDB交互。你可能会说那PyMongo也是ORM啊,在Python中一切都是对象,但我们所说的ORM中的Object在指Python中的自定义类,而不是内置类型。MongoEngineMongoKitMongoDB的数据映射成自定义类实例,它们都是基于PyMongo的。

      我们可以跟关系型数据库的Python客户端MySQLdb,以及ORM SQLAlchemy/Django ORM比较一下,PyMongo相当于MySQLdbMongoEngine相当于SQLAlchemySQLAlchemy是基于MySQLdb之上的,MongoEngine是基于PyMongo的。
1. Mongoengine是面向对象的,直接继承Document类对数据库进行库和collection的增删改查操作。
2. pymongo中是非面向对象的方式,项目使用时不便
pymongo来操作MongoDB数据库,但是直接把对于数据库的操作代码都写在脚本中,这会让应用的代码耦合性太强,而且不利于代码的优化管理
一般应用都是使用MVC框架来设计的,为了更好地维持MVC结构,需要把数据库操作部分作为model抽离出来,这就需要借助MongoEngine

有多种字段

meta = {
        'ordering': ['-published_date']     # 按发布时间倒序
    }
meta:设置一些参数

注意传入字段类型要对应

创建一个meta在文档上调用的类字典属性,并用collection设置集合的名称

一个集合可存储大小的上限默认为10m,但可通过max_size来设置集合可存储大小,同时也可使用max_documents来设置最大文档数量


过滤查询:
# 查询18岁以下的用户
young_users = Users.objects(age__lte=18)

__lte 前面是是字段,后面是运算符

默认情况下,字段不是必需的。要使字段成为必填字段,请将字段的 required关键字参数设置为True

.first() 第一个

字段除了required还有多种参数

pymongo用于查询,mongoengine用于创建

1个模型(类)相当于一个表

中文文档:https://www.cnblogs.com/zhenyauntg/p/13201826.html
# 创建一张Post数据库表
class Post(db.Document):
    meta = {
        'collection': 'todo_test'
    }
    title = db.StringField(max_length=200, required=True)
    content = db.IntField(required=True)
    author = db.StringField(required=True, max_length=50)


#  定义一个数据表对象
post_obj = Post(
    title='Sample Post',
    content=638,
    author='jack'
)

# 执行对象save方法
# post_obj.save()

# 查询
# pos = Post.objects()
# for item in pos:
#     print(item.content)

# 修改
# search = Post.objects(content='638').update(title='《123456》')

# 升排序
# pos = Post.objects().order_by('+content')
# for item in pos:
#     print(item.content)

# 删除
pos = Post.objects(content='638').first()
pos.delete()
posted @   Chiffon1996  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示