我正在尝试使用后端作为MongoDB构建非常简单的REST API。我正在使用Flask和Python来构建它们。我只是在需要为现有密钥插入一些记录的部分上感到困惑。
输入:
stores =[
{
'name': 'My wonderful store',
'items' : [
{
'name': 'My Item',
'price': 15.99
}
]
}
]
现在,如果它是普通的dictionary,我可以在键被配对的位置附加值,像这样:
def create_item_in_store(name):
request_data = request.get_json()
store = db.stores.find()
for store in stores:
if store['name'] == name :
new_item ={
'name': request_data['name'],
'price':request_data['price']
}
**store[name].append(new_item)**
return jsonify(new_item)
return jsonify({'message':'Store is not present'})
我试图研究PyMongo文档,但对更新语法感到困惑。 请提出建议。
答案 0 :(得分:0)
使用以下逻辑更新了我的代码,该代码可以正常工作。
def create_item_in_store(name):
request_data = request.get_json()
stores = db.stores.find()
for store in stores:
print(store['name'])
if store['name'] == name :
new_item ={
'name': request_data['name'],
'price' : request_data['price']
}
db.stores.update_one({"name" : store['name']},{"$set": {"items" : [{"name" : request_data['name'], "price" : request_data['price']}]}})
return jsonify(new_item)
return jsonify({'message':'Store is not present'})