flask_pymongo 的基本操作

参考文档:https://flask-pymongo.readthedocs.io/en/latest/
初始化设置:

from flask import Flask
from flask_pymongo import PyMongo
app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"
mongo = PyMongo(app)

查询:

mongo.db.users.find({"online": True})
user = mongo.db.users.find_one_or_404({"_id": username})

collection.find({"_id": bson.ObjectId(strategy_id)}).next()
mongo.cx['chance_result'][_id].find({"type": "stock_data"})
## 第一个[]是数据库,第二个[]是集合,使用 .find里面的条件去查找一条符合需求的文档

更新:

collection.update({"_id": bson.ObjectId(strategy_id)}, {"$set": kwargs})
coll.update({"_id": bson.ObjectId(strategy_id)}, update, upsert=upsert)

删除:

collection.delete_one({"_id": bson.ObjectId(strategy_id)})
collection.delete_many({"_id": bson.ObjectId(strategy_id)}) # 删除一条数据

插入:

strategy_id = collection.insert(args)  # 插入一条新的数据

关键字查询:

snap = {}   # 查询的字段设置
if like:
	# FIXME: regex 很耗性能,比较好的解决办法?
	strategies = collection.find({
		"user_id": user_id,
		"name": {"$regex": f".*{like}.*"},
		# "profit": {"$type": "number"}  没回测的策略也显示
	}).sort("create_time", -1)
else:
	strategies = collection.find({"user_id": user_id}, cls.snap)

封装:

>>> type(mongo.cx)

>>> type(mongo.db)

>>> type(mongo.db.some_collection)

你可能感兴趣的:(开发实践)