【问题标题】:Inserting records for existing key in PyMongo在 PyMongo 中插入现有密钥的记录
【发布时间】:2019-11-21 21:12:12
【问题描述】:

我正在尝试构建一个非常简单的 REST API,其后端为 MongoDB。我正在使用 Flask 和 Python 来构建它。我只是对需要为现有键插入一些记录的部分感到困惑。

输入:

stores =[
            {
                'name': 'My wonderful store',
                'items' : [
                            {
                                'name': 'My Item',
                                'price': 15.99
                            }
                        ]
            }
       ]

现在,如果它是普通字典,我可以在键匹配的地方附加值,如下所示:

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 文档,但对更新语法感到困惑。 请提出建议。

【问题讨论】:

    标签: python mongodb flask pymongo


    【解决方案1】:

    使用以下逻辑更新了我的代码,它按预期工作..

    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'}) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多