最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在dynamodb使用batchWriteItem

IT培训 admin 6浏览 0评论

在dynamodb使用batchWriteItem

我在我的发电机分贝一个两个表是候选表,另一种是用户表我想用batchWriteItem在发电机分贝,以在表中添加数据。

我已经格式化的查询如下

var user = {
        userid: usrid,
        role: 'candidate',
        password: vucrypt.encryptpass(pass)
      };

      var canduser = {
        fname: req.body.fname,
        lname: req.body.lname,
        location: req.body.location,
        phone: req.body.phone,
        ccode: req.bodyode,
        grad: req.body.grad,
        pgrad: req.body.pgrad,
        ograd: req.body.ograd,
        experience: exp,
        linkedin: req.body.linkedin,
        terms: tandc
      };
      canduser = vutools.fixcanduser(canduser);
      canduser.userid = usrid;

      var writes = {
        'users': [{put: user}],
        'candidate': [{put: canduser}],
      };

但是,如果使用 dynamodb.batchWriteItem(writes, function(err, regdata) { }

它最终成为错误。我怎么能写正确的查询?我正的错误是这样。

MultipleValidationErrors: There were 3 validation errors:
* MissingRequiredParameter: Missing required key 'RequestItems' in params
* UnexpectedParameter: Unexpected key 'users' found in params
* UnexpectedParameter: Unexpected key 'candidate' found in params
回答如下:

在DynamoDB batchwrite,数据必须在dynamodb方式进行格式化。如果你想要做它在标准的JSON,去为documentclient。你有一个例子如下,有记住dynamobb batchwrite只要求接受25元的mawimum。

所以要根据doc您必须:

1.属性

“ATTRIBUTE_1”:{ “S”: “ATTRIBUTE_1_VALUE”}

根据你的例子:

“角色”:{ “S”: “候选人”}

2.项目

每个项目必须有这种格式

      PutRequest: {
        Item: {
            ...,
            "ATTRIBUTE_1": { "S": "ATTRIBUTE_1_VALUE" },
            ...
        }
      }

3.项目的数组添加

创建项目的数组,其中不超过25元,(它是一个batchwrite限dynamodb)

4.你的请求参数

把它放在一起

var params = {
  RequestItems: {
    "TABLE_NAME": [
        //the array you just created in step 3
     ]
   }
}

5.请求

ddb.batchWriteItem(params, function(err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});

UPDATE

你的榜样将是这样的:

var params = {
  "RequestItems": {
    "TABLE_NAME": [
      {
        "PutRequest": {
          Item: {
            "userid": { "N": "usrid" },
            "role": { "S": 'candidate' },
            "password": { "S": vucrypt.encryptpass(pass) }
          }
        }
      }
    ],
    "TABLE_NAME2": [
      {
        "PutRequest": {
          Item: {
            "fname": {
              "S": req.body.fname
            },
            "lname": {
              "S": req.body.lname
            },
            "location": {
              "S": req.body.location
            },
            "phone": {
              "S": req.body.phone
            },
            "ccode": {
              "S": req.bodyode
            },
            "grad": {
              "S": req.body.grad
            },
            "pgrad": {
              "S": req.body.pgrad
            },
            "ograd": {
              "S": req.body.ograd
            },
            "experience": {
              "S": exp
            },
            "linkedin": {
              "S": req.body.linkedin
            },
            "terms": {
              "S": tandc
            }
          }
        }
      }
    ]
  }
}

在dynamodb使用batchWriteItem

我在我的发电机分贝一个两个表是候选表,另一种是用户表我想用batchWriteItem在发电机分贝,以在表中添加数据。

我已经格式化的查询如下

var user = {
        userid: usrid,
        role: 'candidate',
        password: vucrypt.encryptpass(pass)
      };

      var canduser = {
        fname: req.body.fname,
        lname: req.body.lname,
        location: req.body.location,
        phone: req.body.phone,
        ccode: req.bodyode,
        grad: req.body.grad,
        pgrad: req.body.pgrad,
        ograd: req.body.ograd,
        experience: exp,
        linkedin: req.body.linkedin,
        terms: tandc
      };
      canduser = vutools.fixcanduser(canduser);
      canduser.userid = usrid;

      var writes = {
        'users': [{put: user}],
        'candidate': [{put: canduser}],
      };

但是,如果使用 dynamodb.batchWriteItem(writes, function(err, regdata) { }

它最终成为错误。我怎么能写正确的查询?我正的错误是这样。

MultipleValidationErrors: There were 3 validation errors:
* MissingRequiredParameter: Missing required key 'RequestItems' in params
* UnexpectedParameter: Unexpected key 'users' found in params
* UnexpectedParameter: Unexpected key 'candidate' found in params
回答如下:

在DynamoDB batchwrite,数据必须在dynamodb方式进行格式化。如果你想要做它在标准的JSON,去为documentclient。你有一个例子如下,有记住dynamobb batchwrite只要求接受25元的mawimum。

所以要根据doc您必须:

1.属性

“ATTRIBUTE_1”:{ “S”: “ATTRIBUTE_1_VALUE”}

根据你的例子:

“角色”:{ “S”: “候选人”}

2.项目

每个项目必须有这种格式

      PutRequest: {
        Item: {
            ...,
            "ATTRIBUTE_1": { "S": "ATTRIBUTE_1_VALUE" },
            ...
        }
      }

3.项目的数组添加

创建项目的数组,其中不超过25元,(它是一个batchwrite限dynamodb)

4.你的请求参数

把它放在一起

var params = {
  RequestItems: {
    "TABLE_NAME": [
        //the array you just created in step 3
     ]
   }
}

5.请求

ddb.batchWriteItem(params, function(err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});

UPDATE

你的榜样将是这样的:

var params = {
  "RequestItems": {
    "TABLE_NAME": [
      {
        "PutRequest": {
          Item: {
            "userid": { "N": "usrid" },
            "role": { "S": 'candidate' },
            "password": { "S": vucrypt.encryptpass(pass) }
          }
        }
      }
    ],
    "TABLE_NAME2": [
      {
        "PutRequest": {
          Item: {
            "fname": {
              "S": req.body.fname
            },
            "lname": {
              "S": req.body.lname
            },
            "location": {
              "S": req.body.location
            },
            "phone": {
              "S": req.body.phone
            },
            "ccode": {
              "S": req.bodyode
            },
            "grad": {
              "S": req.body.grad
            },
            "pgrad": {
              "S": req.body.pgrad
            },
            "ograd": {
              "S": req.body.ograd
            },
            "experience": {
              "S": exp
            },
            "linkedin": {
              "S": req.body.linkedin
            },
            "terms": {
              "S": tandc
            }
          }
        }
      }
    ]
  }
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论