为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Azure Cosmos DB 中的分区键标头中将项替换为中文单词

无法在 Azure Cosmos DB 中的分区键标头中将项替换为中文单词

Go
冉冉说 2022-09-05 10:45:02
我正在尝试使用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。我认为这个软件包可能缺少一些东西。
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

Azure Cosmos db 仅支持 x-ms-documentdb-partitionkey 中的 Unicode 或 ASCII,而 github.com/vippsas/go-cosmosdb 包使用的是 json。封送,在内部自动将 Unicode 转换为中文字符。

解决它的唯一方法是在创建文档时使用英语作为分区键。


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号