我正在嘗試使用golang在Azure Cosmos db中使用 github.com/vippsas/go-cosmosdb 包進(jìn)行CURD操作。一切正常,除了嘗試在x-ms-documentdb-partitionkey中用中文字符替換文檔。文檔示例數(shù)據(jù),分區(qū)鍵為 /method{ "id": "9289b3f5-5830-4589-ab7d-6c0efbb4150e", "method": "日", "endpoint": "/api/savecsv?operator=jimmylin", "operator": "jimmy", "execTime": 1622867229, "payload": "abc.json"}這是我的代碼: client := cosmosapi.New() _, _, err = client.CreateDocument(ctx, "dbid", "contid", &log, cosmosapi.CreateDocumentOptions{PartitionKeyValue: log.Method}) if err != nil { err = tracerr.New(err.Error()) tracerr.PrintSourceColor(err, 2) }我還打印出了在 /vippsas/go-cosmosdb 包中處理的分區(qū)鍵。輸出為:x-ms-documentdb-partitionkey:["日"]這是我的錯(cuò)誤:The JSON, SQL, or JavaScript in the request body is invalid如果我將/method更改為英語(yǔ),它工作得很好。如果我使用JS SDK也可以正常工作(中文字符分區(qū)鍵)。我相信JS SDK或我使用的軟件包都基于Azure Cosmos DB Restful API。我認(rèn)為這個(gè)軟件包可能缺少一些東西。
1 回答

元芳怎么了
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
Azure Cosmos db 僅支持 x-ms-documentdb-partitionkey 中的 Unicode 或 ASCII,而 github.com/vippsas/go-cosmosdb 包使用的是 json。封送,在內(nèi)部自動(dòng)將 Unicode 轉(zhuǎn)換為中文字符。
解決它的唯一方法是在創(chuàng)建文檔時(shí)使用英語(yǔ)作為分區(qū)鍵。
- 1 回答
- 0 關(guān)注
- 99 瀏覽
添加回答
舉報(bào)
0/150
提交
取消