我在一个长字段(playerId
)上创建了一个分区集合,并在该字段上添加了一个哈希索引(DataType.Number)。当我在大部分时间插入记录时它会起作用,但有时它会给我一个PartitionKey extracted from document doesn't match the one specified in the header
。
在Azure数据资源管理器中对此进行测试后,我发现存在长数问题的舍入问题。如果我通过数据资源管理器插入183548146777950021
,它将保存它,但随后将同一记录作为183548146777950000
返回给我。这是一个已知的问题吗?
我在Direct / TCP模式下使用最新的1.23.2 .NET客户端。
答案 0 :(得分:0)
如果我通过数据资源管理器插入183548146777950021,它将保存它,但然后将同一记录返回给我183548146777950000.这是一个已知问题吗?
据我所知,Azure DocumentDB对数字使用IEEE754标准,这可能导致大整数或更高精度十进制数的截断或精度损失。如果可能,您可以尝试修改playerId
字段并将其存储为字符串"183548146777950021"
。
你可以参考这个类似的问题:Azure DocumentDB decimal truncation。