Я использую 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()
Если я использую List в данных, я могу получить записи, используя elemMatch (проверьте ниже код), но требуется использовать dict в данных.
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"}}})