AWS Dynamo表对某些记录写入数据不正确
AWS Dynamo table writing data incorrectly for some records
我编写了一个脚本,调用AWS上的lambda函数,这个lambda函数应该将记录写入Dynamo表。
大多数情况下正确的格式是:
"yearOfBirth": "1973/01/01",
"yearsOfExperience": "5 or more years",
"zipCode": "60657"
有一些是这样写的:
"yearOfBirth": {
"S": "1973/01/01"
},
"yearsOfExperience": {
"S": "5 or more years"
},
"zipCode": {
"S": "60657"
}
是什么原因造成的?
编辑:我正在使用的代码,我传递给docClient.put()
var profile = require('../model/userProfile.js');
var _ = require('lodash');
module.exports.save = function(userId, data, tableName, cb) {
_(data).forIn(function(value, key) {
var keyAttr = key;
var valAttr = value;
var params = {
TableName: tableName,
Key: {
id: userId
},
UpdateExpression: 'SET #attrName = :attrValue',
ExpressionAttributeNames: {
'#attrName': keyAttr
},
ExpressionAttributeValues: {
':attrValue': valAttr
}
};
profile.appendDataToUser(params, cb);
});
};
概要文件。appendDataToUser只是调用docClient.put()
示例代码将是有用的。但是,我怀疑您可能正在使用AWS.DynamoDB.DocumentClient
来编写记录并同时指定字段类型。如果你使用AWS.DynamoDB.DocumentClient
,你不需要指定字段类型,你可以只传递一个普通的javascript对象。但是如果您使用AWS.DynamoDB
,则需要指定字段类型。
使用AWS.DynamoDB
var dynamodb = new AWS.DynamoDB();
dynamodb.putItem({
TableName: 'user',
Item: {
"yearOfBirth": {
"S": "1973/01/01"
},
"yearsOfExperience": {
"S": "5 or more years"
},
"zipCode": {
"S": "60657"
}
}
});
使用AWS.DynamoDB.DocumentClient
var dynamodb = new AWS.DynamoDB.DocumentClient();
dynamodb.put({
TableName: 'user',
Item: {
"yearOfBirth": "1973/01/01",
"yearsOfExperience": "5 or more years",
"zipCode": "60657"
}
});
相关文章:
- PHP生成的表列数据不在正确的位置
- Angular promise从JSON API返回不正确的数据
- 在jquery mobile中,post方法数据发送不正确
- D3:“SVG4601:SVG 路径数据的格式不正确,无法完全解析
- 为什么它说输入数据数组的格式不正确 jqchart.
- NodeJS > req.query 返回不正确的数据
- Amchart 和 Ajax 获取格式不正确的数据
- HTML5 画布图像数据不正确的 rgb 值
- 煎茶触摸 2 模型关联保存不正确的数据进行存储
- 这个jQuery AJAX帖子保存数据不正确吗?
- 回显的数据不在正确的行中
- 从 MySQL 数据库获取数据时节点.js流不正确
- 选择的数据不正确
- 画布图绘制数据不正确
- JSON数据格式不正确
- jQuery数据表排序不正确
- 日期在Highcharts图中显示不正确,时间数据不规则
- AWS Dynamo表对某些记录写入数据不正确
- 在Handsontable中移动列后编辑单元格时,数据不正确
- 使用 AJAX 加载数据不正确