如何使用 python 更新 Cosmos Db 中的记录?
How To Update Record in Cosmos Db using python?
我想从 cosmos db 读取记录并使用 python 更新 cosmos db 中的相同记录。
示例:
{
"id":"id-1",
"name":"mohit"
}
我要阅读上面的记录并更新为。
{
"id":"id-1",
"name":"Mohit Singh"
}
我发现很少 link 但似乎他们只 创建 或 删除 记录但不更新现有记录:
https://github.com/Azure/azure-cosmos-python#modify-container-properties
但无法获取如何更新现有记录。
在我的场景中,我想从 cosmos db 读取所有记录并更新一些值。
我如何在 python 中做到这一点。
import os
import json
import azure.cosmos.cosmos_client as cosmos_client
COSMOS_DB_END_POINT = os.getenv("COSMOS_DB_END_POINT")
COSMOS_DB_MASTER_KEY = os.getenv("COSMOS_DB_MASTER_KEY")
COSMOS_DB_DATABASE_ID = os.getenv("COSMOS_DB_DATABASE_ID")
COSMOS_DB_COLLECTION_ID = os.getenv("COSMOS_DB_COLLECTION_ID");
client = cosmos_client.CosmosClient(COSMOS_DB_END_POINT, {'masterKey': COSMOS_DB_MASTER_KEY})
document_link = "dbs/" + COSMOS_DB_DATABASE_ID + "/colls/" + COSMOS_DB_COLLECTION_ID
for item in client.QueryItems(document_link,
'SELECT * FROM ' + COSMOS_DB_COLLECTION_ID,
{'enableCrossPartitionQuery': True}):
item['created'] += '123'
print(json.dumps(item, indent=True))
client.ReplaceItem(document_link, item, options=None)
您希望使用的方法是 ReplaceItem
。您将需要查询容器以获取文档(以便您拥有该文档的自身 link),然后调用此方法并传递更新后的文档。
我想从 cosmos db 读取记录并使用 python 更新 cosmos db 中的相同记录。
示例:
{
"id":"id-1",
"name":"mohit"
}
我要阅读上面的记录并更新为。
{
"id":"id-1",
"name":"Mohit Singh"
}
我发现很少 link 但似乎他们只 创建 或 删除 记录但不更新现有记录:
https://github.com/Azure/azure-cosmos-python#modify-container-properties
但无法获取如何更新现有记录。
在我的场景中,我想从 cosmos db 读取所有记录并更新一些值。
我如何在 python 中做到这一点。
import os
import json
import azure.cosmos.cosmos_client as cosmos_client
COSMOS_DB_END_POINT = os.getenv("COSMOS_DB_END_POINT")
COSMOS_DB_MASTER_KEY = os.getenv("COSMOS_DB_MASTER_KEY")
COSMOS_DB_DATABASE_ID = os.getenv("COSMOS_DB_DATABASE_ID")
COSMOS_DB_COLLECTION_ID = os.getenv("COSMOS_DB_COLLECTION_ID");
client = cosmos_client.CosmosClient(COSMOS_DB_END_POINT, {'masterKey': COSMOS_DB_MASTER_KEY})
document_link = "dbs/" + COSMOS_DB_DATABASE_ID + "/colls/" + COSMOS_DB_COLLECTION_ID
for item in client.QueryItems(document_link,
'SELECT * FROM ' + COSMOS_DB_COLLECTION_ID,
{'enableCrossPartitionQuery': True}):
item['created'] += '123'
print(json.dumps(item, indent=True))
client.ReplaceItem(document_link, item, options=None)
您希望使用的方法是 ReplaceItem
。您将需要查询容器以获取文档(以便您拥有该文档的自身 link),然后调用此方法并传递更新后的文档。