错误的Data explorer Azure批处理->python SDK上载转义的json?
我正在使用PyMongo Python 3.6与连接到Azure上的DocumentDB的MongoDB API进行接口。在更新mongo DB中现有的_ID时,我得到了一个明显可见的错误,我更新的json bson?他逃走了。这在Azure数据资源管理器中发生。见图 但是,当我通过客户端查询数据库时,结果似乎是有效的,并且正常工作。我用来上传数据的代码片段如下所示:错误的Data explorer Azure批处理->python SDK上载转义的json?,python,mongodb,azure,pymongo,Python,Mongodb,Azure,Pymongo,我正在使用PyMongo Python 3.6与连接到Azure上的DocumentDB的MongoDB API进行接口。在更新mongo DB中现有的_ID时,我得到了一个明显可见的错误,我更新的json bson?他逃走了。这在Azure数据资源管理器中发生。见图 但是,当我通过客户端查询数据库时,结果似乎是有效的,并且正常工作。我用来上传数据的代码片段如下所示: def upsert_data(self, collection: str, data: Any): bulk_upda
def upsert_data(self, collection: str, data: Any):
bulk_updates = []
coll = self._database[collection]
for item in data:
bulk_updates.append(
UpdateOne(
{"_id": ObjectId(item.pop("_id"))},
{"$set": item}))
try:
coll.bulk_write(bulk_updates)
except BulkWriteError as bwe:
pprint.pprint(bwe.details)
self._数据库[collection]是在init中创建的客户端
item type:dict的结构大致如下所示:
{
'varA': 0,
'varB': 12,
'varC': [
{'var2': 23},
{'var2': 24}]
}
有没有人能告诉我我做错了什么?这是我在阅读文档后提出的解决方案。我对这方面还不太熟悉。任何意见都将不胜感激
提前谢谢 我不知道你所谓的json是什么意思。被掩盖或内容被清空?你的截图看起来也不完整 我按照您的代码尝试批量更新数据,效果很好 请参考以下代码片段:
import pymongo
from pymongo import UpdateOne
uri = "your connect string"
client = pymongo.MongoClient(uri)
bulk_updates = []
for doc in coll.find({}):
bulk_updates.append(UpdateOne({'_id': doc.get('_id')},{"$set": {"test":"add"}}, upsert=False))
print(bulk_updates)
db.coll.bulk_write(bulk_updates)
print("update success ")
更新文件
有关可与bulk_write方法一起使用的更多操作,请参见文档链接: