Description
MongoDB 服务
使用 Docker 运行 MongoDB 服务:
docker run
-e MONGO_INITDB_ROOT_USERNAME=admin
-e MONGO_INITDB_ROOT_PASSWORD=123456
-p 27017:27017
-d mongo:4
配置了 root 用户和密码,以及与宿主机的端口映射关系
通过 MongoEngine 操作数据库
MongoEngine 是基于 PyMongo 开发的 ORM 库,详见:MongoEngine
建立连接
import mongoengine
def init_mongo():
mongoengine.connection.connect('lbs',
host='127.0.0.1',
port=27017,
username='admin',
password='123456',
authentication_source='admin')
init_mongo()
连接只需要建立一次
数据对象模型
为项目数据配置一个模型类:
from mongoengine import *
class Group(Document):
group_id = LongField(required=True, unique=True)
group_item = ListField(required=True)
查询
查询单条数据:
Group.objects.get(group_id=1)
查询多条数据:
Group.objects(group_item=[1, 2])
字段过滤:
Group.objects(group_id=1).exclude('id')
修改
group = Group.objects.get(group_id=1)
group.group_item = [2, 3]
group.save()
格式转换
JSON 序列化:
Group.objects(group_id=1)[0].to_json()
反序列化:
import json
group_json = Group.objects(group_id=1)[0].to_json()
group_dict = json.loads(group_json)