我想使用Flask requests
在MongoDB中查询嵌套的JSON文档。
JSON格式如下:
{"_id": "5d18acedd866fc0c7028f9b7",
"name": "abc",
"address": "xyz",
"children": [{"name": "aaa",
"address": "xxx",
"children": []
}]
}
我想在"address":"xxx"
中提取文档的一部分
即{"name": "aaa", "address": "xxx", "children": []}
我在服务器端写为:
class ExecuteQuery(Resource):
def get(self, collection_name):
result_list = []
query_list = []
for k, v in request.json.items():
query_list.append({k:v})
cursor = mongo.db[collection_name].find(*query_list)
for document in cursor:
encoded_data = JSONEncoder().encode(document)
result_list.append(json.loads(encoded_data))
return result_list
客户端将请求发送为:
req = {<what should I send here??>}
response = requests.get(url, json=req, headers=headers)
在服务器端,我试图通过使用星号运算符(req
)来提取*query_list
中的键值对。但这仅在我有一对键值对(例如req = {"name":"abc"}
)时有效。
如何查询嵌套的JSON并提取"address":"xyz"
子句匹配的部分?