Geo*_*nan 9 amazon-web-services amazon-dynamodb
我有一个使用DynamoDB的应用程序,我需要能够存储一些数字.目前,这些数字只会是正整数或偶尔为1位小数的正数.
由于DynamoDB只有一个Number数据类型,我认为它有点等同于float,将整数存储为Numbers是安全的,而不必担心精度导致返回值不正确(即1.999999999999而不是2)?或者我应该将它们保存为字符串并在需要时解析字符串中的整数.我知道DynamoDB已经在后台的某个时刻将Numbers存储为字符串,但我不确定在转换之前是否存在准确性丢失的可能性.
正如我所说,我将只使用最多1位小数的正数.
小智 14
Number类型的属性.例如:
"N":"123.45"
数字通过网络以字符串形式发送到DynamoDB,以最大限度地提高语言和库之间的兼容性.但是,DynamoDB将它们视为数学运算的数字类型属性.
类型:字符串必需:否
从文档中,如果您将数字存储为1.999999,您将获得1.999999.
还有其他文件:
数
数字最多可以有38位精度,可以是正数,负数或零.
正范围:1E-130至9.9999999999999999999999999999999999999E + 125负范围:-9.9999999999999999999999999999999999999E + 125至-1E-130 DynamoDB使用JSON字符串表示请求和回复中的Number数据.有关更多信息,请参阅DynamoDB低级API.
如果数字精度很重要,则应使用从数字类型转换的字符串将数字传递给DynamoDB.
将数字存储为的另一个优点DynamoDB Number data type.
在UpdateExpression,您可以使用+ or -添加/减去值.
例:-
加:-
UpdateExpression : "SET total_val = total_val + :value",
ExpressionAttributeValues: {
':value': 2
},
Run Code Online (Sandbox Code Playgroud)
减去:-
UpdateExpression : "SET total_val = total_val - :value",
ExpressionAttributeValues: {
':value': 2
},
Run Code Online (Sandbox Code Playgroud)
如果将数字存储为DynamoDB中的String数据类型,则无法进行上述操作.
| 归档时间: |
|
| 查看次数: |
3832 次 |
| 最近记录: |