Как обновить запись в Cosmos Db используя python? - PullRequest
0 голосов
/ 12 марта 2020

Я хочу прочитать запись из космоса и обновить ту же запись в космосе, используя python.

пример:

{
  "id":"id-1",
   "name":"mohit"
}

Я хочу прочитать вышеупомянутую запись и обновите ее до.

{
  "id":"id-1",
   "name":"Mohit Singh"
}

Я нахожу несколько ссылок, но кажется, что они только создают или удаляют запись, но не обновляют существующую запись:

https://github.com/Azure/azure-cosmos-python#modify-container-properties

, но не могу узнать, как обновить существующую запись.

в моем сценарии я хочу прочитать всю запись из базы данных cosmos и обновить несколько значений.

как я может сделать это в 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)

1 Ответ

2 голосов
/ 12 марта 2020

Метод, который вы хотите использовать: ReplaceItem. Вам нужно будет запросить контейнер, чтобы получить документ (чтобы у вас была собственная ссылка этого документа), затем вызвать этот метод и передать обновленный документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...