[英]Create table using nodejs Dynamodb?
我想创建一个表并想使用 Dynamodb(NodeJs) 创建 6-7 个列/属性。 我创建了一个表,但我不能添加 2 个以上的属性。我是这个平台的新手,谁能帮我在一个表中创建多个属性。
在 DynamoDB 上,您必须仅为您的表定义Hash Key
和可选的Sort Key
。 其余的属性不必定义! 你可以推送任何你想要的数据。
查看下面基于官方文档的示例。
我正在创建一个表Movies
与 Hash: Year
和 Sort: Title
。 然后我正在创建具有更多属性的电影:
var AWS = require("aws-sdk");
AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000"
});
var client = new AWS.DynamoDB();
var documentClient = new AWS.DynamoDB.DocumentClient();
var tableName = "Movies";
var params = {
TableName: tableName,
KeySchema: [
{ AttributeName: "year", KeyType: "HASH"}, //Partition key
{ AttributeName: "title", KeyType: "RANGE" } //Sort key
],
AttributeDefinitions: [
{ AttributeName: "year", AttributeType: "N" },
{ AttributeName: "title", AttributeType: "S" }
],
ProvisionedThroughput: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10
}
};
client.createTable(params, function(tableErr, tableData) {
if (tableErr) {
console.error("Error JSON:", JSON.stringify(tableErr, null, 2));
} else {
console.log("Created table successfully!");
}
// Adding Batman movie to our collection
var params = {
TableName: tableName,
Item: {
"year": 2005,
"title": "Batman Begins",
"info": {
"plot": "A young Bruce Wayne (Christian Bale) travels to the Far East.",
"rating": 0
}
}
};
console.log("Adding a new item...");
documentClient.put(params, function(err, data) {
if (err) {
console.error("Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Added item successfully!");
}
});
});
在 dynamoDB 中,当您向数据库添加项目时,将自动创建属性。
创建表时,我们只指定主键和可选的排序键。
这是使用 nodejs AWS-SDK 在 DynamoDB 上创建表的示例
// Imports const AWS = require('aws-sdk') AWS.config.update({ region: 'eu-west-3' }); // Declare local variables const dynamo = new AWS.DynamoDB(); createTable('your table name') .then(data => console.log(data)) function createTable (tableName) { const params = { TableName: tableName, AttributeDefinitions: [ // required attributes to be used as keys { AttributeName: 'id', AttributeType: 'N' } ], KeySchema: [ { AttributeName: 'id', KeyType: 'HASH' } ], ProvisionedThroughput: { ReadCapacityUnits: 5, // Eventually Consistent Model WriteCapacityUnits: 5 } } return new Promise((resolve, reject) => { dynamo.createTable(params, (err, data) => { if(err) reject(err); else resolve(data); }) }) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.