【问题标题】:How to check if a value in python dictionary exist in mongo db? If exist update the value in mongoDB else update in mongoDB如何检查python字典中的值是否存在于mongo db中?如果存在,则更新 mongoDB 中的值,否则更新 mongoDB
【发布时间】:2019-08-14 21:19:06
【问题描述】:

我有一个 Python 字典,其中包含 {objctID},'GUID',{'A':A's score'},{'B':'B's score}。我的字典中有 5 个 guid。

相同格式的文档已经存储在 mongoDB 中。 我想检查 python dict 中的 guid 是否存在于 mongodb 集合中。如果存在,则必须更新其他插入到 mongoDB。

如何使用 pyMongo 做到这一点?

【问题讨论】:

    标签: pymongo


    【解决方案1】:

    假设RESULT 是一个字典,其键与您的IDs 匹配并包含您的分数,您可以执行以下操作:

    ids = RESULT.keys()
    for id in ids:
        collection.update({"ID": id}, {$set : {id : RESULT[id]}}, true)
    

    如果文档不存在,true 将插入。

    这里是the pymongo docs

    【讨论】:

    • 你能用正确的字典结构更新你的问题吗?如下所示:汽车 = {'A':{'speed':70, 'color':2}, 'B':{'speed':60, 'color':3}}
    • 我有一个 Python 字典,其 RESULT= {'04BB30FC-5476-11DD-A31F-17FB9CFF4B22': [{'7219': '0.49954929481682875'}, {'1416': '0.48741579334133667'} ,{'4531':'0.44331446284643317'}。我在 mongoDB 中有一个具有相同键和不同键值的文档。集合 = db [“文档”] 文档 = {“_id”:ObjectId(“5d5270c4464cc8210eb5f683”),“ID”:“04BB30FC-5476-11DD-A31F-17FB9CFF4B22”:[{“7173”:“0.4076433655407347”},{ "526" : "0.3878485824518719" }] 我想检查一下,如果在文档中找到结果中的 ID,则必须更新它,否则 upsert=T。
    • 这个结构是错误的,您能否用您的字典和数据库文档的真实完整结构更新您上面的问题?否则,答案非常简单,直接来自文档
    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2019-10-13
    • 2016-01-14
    • 2012-10-12
    • 2021-06-13
    相关资源
    最近更新 更多