Выдача ключа партиции azure cosmos db asyn c api - PullRequest
0 голосов
/ 20 февраля 2020

Итак, я пытаюсь создать новый do c в космосе с этим кодом:

 fun newDoc(key: String, data: Any, id: String){
    policy.setConnectionMode(ConnectionMode.Direct);

    val asyncClient = AsyncDocumentClient.Builder()
        .withServiceEndpoint("https://ara-account-data.documents.azure.com:443/")
        .withMasterKeyOrResourceToken(System.getenv("IOTDB") )
        .withConnectionPolicy(policy)
        .withConsistencyLevel(ConsistencyLevel.Eventual)
        .build()
    val doc =
        Document(data, id, "user-$key")
    val options = RequestOptions()
    options.partitionKey = PartitionKey("user-$key")
    val createDocumentObservable: Observable<ResourceResponse<com.microsoft.azure.cosmosdb.Document>> =
        asyncClient.createDocument("dbs/Ara-android-database/colls/Ara-android-collection", doc, options, true)
    createDocumentObservable
        .single() // we know there will be one response
        .subscribe(
            { documentResourceResponse: ResourceResponse<com.microsoft.azure.cosmosdb.Document> ->
                println(
                    documentResourceResponse.requestCharge
                )
            },
            { error: Throwable ->
                System.err.println("an error happened: " + error.message)
                throw  error
            }
        )

}

, но я получаю эту ошибку

an error happened: ["PartitionKey extracted from document doesn't match the one specified in the header"], 

RequestStartTime: "20 февраля 2020 01: 40: 14.716 ", RequestEndTime:" 20 февраля 2020 01: 40: 18.003 ", продолжительность: 3287 мс, количество попыток регионов: 1

любая помощь будет отличной:}

...