下面是Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录。
概述
MongoEngine是一个Python对象文档映射器(ODM),它允许开发者使用Python类定义数据库中的文档结构和文档属性,并可以对MongoDB文档进行较为方便的操作,避免了直接操作代码时需要编写大量的MongoDB原生语句的复杂性,使得Python开发人员能更加高效地使用MongoDB。
安装MongoEngine
使用pip安装MongoEngine,输入以下命令:
pip install mongoengine
连接MongoDB
在Python中使用MongoEngine连接MongoDB需要先定义一个连接,代码如下:
from mongoengine import connect
connect('mydb', host='localhost', port=27017)
这里使用的是本地数据库,MongoDB的默认端口号为27017,需要先开启MongoDB服务。
定义文档结构
定义文档结构非常类似Python中的类,只需要继承MongoEngine的Document
类即可,文档结构中的属性称为域,可以定义各种类型的变量,MongoEngine提供的域类型有很多,包括字符串、整型、浮点型、列表、字典等,示例代码如下:
from mongoengine import Document, StringField, IntField
class Person(Document):
name = StringField(required=True)
age = IntField(required=True)
这里定义的Person
文档结构中包含两个属性,都是MongoEngine提供的域类型,其中name
属性是字符串类型的,需要指定required=True
表示必填项,而age
属性是整型类型的。
操作文档
除了定义文档结构,使用MongoEngine还可以方便地进行文档的增删改查等操作。
增加文档
使用MongoEngine增加文档需要先创建一个文档对象,然后调用save()
方法即可将其保存到数据库中。
示例代码如下:
person = Person(name='张三', age=28)
person.save()
这里创建了一个名为person
的文档对象,并传入了name
和age
属性的值,然后调用save()
方法将其保存到数据库中。
查询文档
使用MongoEngine查询文档也非常简单,可以使用objects
属性进行查询,MongoEngine提供了很多查询方法,可以进行简单的条件查询或复杂的聚合查询。
示例代码如下:
# 查询所有文档
all_persons = Person.objects()
for person in all_persons:
print(person.name, person.age)
# 按条件查询文档
young_persons = Person.objects(age__lt=30)
for person in young_persons:
print(person.name, person.age)
这里使用objects()
方法查询了所有文档,并使用for
循环遍历输出了每个文档中的name
和age
属性的值。同时也使用了age__lt
条件查询,查询出年龄小于30岁的文档。
更新文档
更新文档也很简单,只需要先查询要更新的文档对象,然后修改其属性值,最后调用save()
方法保存即可。
示例代码如下:
person = Person.objects(name='张三').first()
person.age = 30
person.save()
这里使用objects()
方法查询出名为张三
的文档,并将其年龄从28修改为30,然后调用save()
方法保存到数据库中。
删除文档
删除文档同样很简单,只需要查询要删除的文档对象,然后调用delete()
方法删除即可。
示例代码如下:
person = Person.objects(name='张三').first()
person.delete()
这里查询出名为张三
的文档对象,并使用delete()
方法将其删除。
总结
至此,Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录已经介绍完毕,MongoEngine是非常方便易用的Python ORM工具,可以大大提高Python开发人员的工作效率。
以上是本篇文章的所有内容,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录 - Python技术站