我正在尝试使用golang在Azure Cosmos db中使用 github.com/vippsas/go-cosmosdb 包进行CURD操作。
一切正常,除了尝试在x-ms-documentdb-partitionkey中用中文字符替换文档。
文档示例数据,分区键为 /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 包中处理的分区键。输出为:
x-ms-documentdb-partitionkey:["日"]
这是我的错误:
The JSON, SQL, or JavaScript in the request body is invalid
如果我将/method更改为英语,它工作得很好。
如果我使用JS SDK也可以正常工作(中文字符分区键)。
我相信JS SDK或我使用的软件包都基于Azure Cosmos DB Restful API。我认为这个软件包可能缺少一些东西。
冉冉说
元芳怎么了
随时随地看视频慕课网APP
相关分类