【发布时间】:2017-11-15 09:56:35
【问题描述】:
我正在使用 PyMongo (Python 3.6) 与连接到 Azure 上托管的 DocumentDB 的 MongoDB API 进行交互。当更新 mongo DB 中的现有 _ids 时,我得到一个明显可见的错误,即我更新的 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._database[collection] 是在 init 中创建的客户端。
item的结构(类型:dict)大致如下:
{
'varA': 0,
'varB': 12,
'varC': [
{'var2': 23},
{'var2': 24}]
}
如果我做错了什么,有人可以告诉我吗?这是我在阅读文档后提出的解决方案。我对此很陌生。任何输入将不胜感激!
提前致谢!
【问题讨论】:
标签: python mongodb azure pymongo