我正在使用Flask-MongoAlchemy。我想在下面的代码中获取User1的值。
from flask_mongoalchemy import MongoAlchemy
from flask import Flask
app = Flask(__name__)
db = MongoAlchemy()
app.config["MONGOALCHEMY_DATABASE"]="MyDatabase"
db.init_app(app)
class Output(db.Document):
data =db.AnythingField()
def save_to_db(self) -> None:
db.session.save(self)
op = Output()
op.data = {"User1": {"Item2": 2, "Item3": -1, "Item4": 2}, "User2": {"Item4": 2, "Item5": 1, "Item6": 2}}
op.save_to_db()
r = op.query.filter({Output.data:{"User1":{'$exists':True}}})
result = r.all()
如果我在数据中使用列表,那么我可以使用elemMatch来获取记录(检查下面的代码),但要求是在数据中使用字典。
op.data = [{"name":"User1", "list": {"Item2": 2, "Item3": -1, "Item4": 2}},{"name": "User2", "list": {"Item4": 2, "Item5": 1, "Item6": 2}}]
r = op.query.filter({Output.data:{"$elemMatch":{ "name":"User1"}}})