MongoAlchemy Запрос встроенного документа с помощью ключа - PullRequest
0 голосов
/ 20 марта 2019

Я использую 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"}}})   
...