如何将新元素插入现有 mongodb 并从 json 文件更新现有文档?
How to Insert new element into existed mongodb and uptate existed document from json file?
我对 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()
但我收到如下错误信息:
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
NameError: name 'true' is not defined
有人能帮帮我吗?谢谢!!
您正在使用 python 连接到 Mongodb。在 python 中是 True
,在 mongodb 中是 true
。
并更改
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
到
db.basicdata.update({"whID": fwhID },json_data, upsert= true)
我只修改了一行代码如下:
原创
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
改为
db.basicdata.update( {"whID" : fwhID },{"$set":json_data}, upsert= True)
那就成功了!
db.basicdata.update( {"whID" : fwhID },{"$set":json_data}, upsert= True)
{"$set":json_data} 将 dict 放入现有文档并匹配键 "whID".
我对 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()
但我收到如下错误信息:
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
NameError: name 'true' is not defined
有人能帮帮我吗?谢谢!!
您正在使用 python 连接到 Mongodb。在 python 中是 True
,在 mongodb 中是 true
。
并更改
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
到
db.basicdata.update({"whID": fwhID },json_data, upsert= true)
我只修改了一行代码如下: 原创
db.basicdata.update({"whID": fwhID },json_data, {upsert: true})
改为
db.basicdata.update( {"whID" : fwhID },{"$set":json_data}, upsert= True)
那就成功了! db.basicdata.update( {"whID" : fwhID },{"$set":json_data}, upsert= True) {"$set":json_data} 将 dict 放入现有文档并匹配键 "whID".