如何在已有的mongodb中插入新元素,从json文件中更新已有的文档?

2024-09-20 06:53:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于python和mongodb的问题。我有一个已经存在的mongodb wh和一个收集basicdata。我想通过键“whID”将json文件合并到已经存在的mongodb中。我的代码如下:

import json, glob, codecs
from pymongo import MongoClient

directory = 'json/test/211.json'
client = MongoClient("localhost", 27017)
db = client.wh

jsonFiles = glob.glob(directory)
for file in jsonFiles:
     fwhID = file[10:13] #get the file name as whID in a stupid way
     with codecs.open(file,'r',errors='ignore',encoding='utf-8') as json_file:
          json_data = json.load(json_file)
          db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
          print("Processing Json_data: ",file)
     json_file.close()

但我收到一条错误消息如下:

^{pr2}$

有人能帮我吗?谢谢!!在


Tags: importclientjsondbdatamongodbdirectoryglob
2条回答

我只需修改一行代码如下: 原创

db.basicdata.update({"whID": fwhID },json_data, {upsert: true})

更改为

^{pr2}$

那就行了! db.basicdata.update({“whID”:fwhID},{“$set”:json_data},upsert=True) {“$set”:json_data}将把dict放入已有的文档中,并匹配键“whID”。在

您正在使用python连接到Mongodb。在python中,true是True,在mongodb中是true。在

和改变

db.basicdata.update({"whID": fwhID },json_data, {upsert: true})

^{pr2}$

相关问题 更多 >