我正在使用PyMongo(python3.6)与一个mongodbapi接口,该API连接到一个托管在Azure上的DocumentDB。当更新mongodb中现有的id时,我得到一个明显可见的错误,即我更新的json(bson?)已被转义。这发生在Azure数据资源管理器中。请看图片
当我通过客户端查询数据库时,结果似乎是有效的,并且正常工作。我用来上传数据的代码片段如下所示:
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.\u数据库[collection]是在init中创建的客户机
项目的结构(类型:dict)大致如下所示:
{
'varA': 0,
'varB': 12,
'varC': [
{'var2': 23},
{'var2': 24}]
}
有没有人能告诉我我做错了什么?这是我在阅读文档后提出的解决方案。我对这方面还不太熟悉。任何意见都将不胜感激
提前谢谢
我不知道你所谓的json转义是什么意思。被掩盖或内容被清空?你的截图看起来也不完整
我按照你的代码尝试批量更新数据,它工作得很好
请参考以下代码片段:
更新文档
有关可与bulk\u write方法一起使用的更多操作,请访问文档链接:http://api.mongodb.com/python/current/api/pymongo/operations.html
相关问题 更多 >
编程相关推荐