一、创建表

 1 var AWS = require("aws-sdk");
2 AWS.config.update({
3 region: "us-west-2", //使用哪个区域的aws服务
4 endpoint: "http://localhost:8000" //dynamodb位置
5 });
6 var dynamodb = new AWS.DynamoDB();
7
8 var params = {
9 TableName: "Movies",//表名
10 KeySchema: [ //主键
11 {AttributeName: "year", KeyType: "HASH"}, //Partition key 分区键
12 {AttributeName: "title", KeyType: "RANGE"} //Sort key 排序键
13 ],
14 AttributeDefinitions: [//主键数据类型
15 {AttributeName: "year", AttributeType: "N"},//N Number
16 {AttributeName: "title", AttributeType: "S"} //S String
17 ],
18 ProvisionedThroughput: { //DynamoDB吞吐量配置
19 ReadCapacityUnits: 10,
20 WriteCapacityUnits: 10
21 }
22 };
23 dynamodb.createTable(params, function (err, data) {
24 if (err) {
25 console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2));
26 } else {
27 console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2));
28 }
29 });

二、增加项

 var docClient = new AWS.DynamoDB.DocumentClient();
var table = "Movies";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName: table,//要操作的表名
Item: {
"year": year,//主键-分区间
"title": title,//主键-排序键
"info": { //其他属性
"plot": "Nothing happens at all.", "rating": 0
}
}
};
console.log("Adding a new item...");
docClient.put(params, function (err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
});

三、获取项

 var docClient = new AWS.DynamoDB.DocumentClient()
var table = "Movies";//表名必须填
var year = 2015; //待查询的分区键
var title = "The Big New Movie";//待查询的排序键 如果表建立时设置为复合主键的话,分区键排序键必须都存在
var params = {TableName: table, Key: {"year": year, "title": title}};
docClient.get(params, function (err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
}
});

四、更新项

 var table = "Movies";
var year = 2015;
var title = "The Big New Movie"; // Update the item, unconditionally,
var params = {
TableName: table, Key: {
"year": year,//分区键
"title": title//排序键 主键在update接口必须
}, UpdateExpression: "set info.rating = :r, info.plot=:p, info.actors=:a",//想要改变值的表达式
ExpressionAttributeValues: { //为想要改变的值赋值
":r": 5.5, ":p": "Everything happens all at once.", ":a": ["Larry", "Moe", "Curly"]
}, ReturnValues: "UPDATED_NEW"//返回更新值,即下中data
};
console.log("Updating the item...");
docClient.update(params, function (err, data) {
console.log(data);
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2));
}
});

五、删除项

 var table = "Movies";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName: table,//待删除操作的表
Key: {
"year": year,//分区键
"title": title//排序键
},
ExpressionAttributeNames:{"#u":"User"},
ConditionExpression: "#u = :val",//删除条件表达式
ExpressionAttributeValues: {
":val": 5.0 //条件值
}
};
console.log("Attempting a conditional delete...");
docClient.delete(params, function (err, data) {
if (err) {
console.error("Unable to delete item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("DeleteItem succeeded:", JSON.stringify(data, null, 2));
}
});

六、批量查询

 var params = {
RequestItems: {
"GsdSubDevices": {
Keys: [
{
"Mac": "haha"
},
{
"Mac": "111"
},
{
"Mac": "222"
}
]
}
}
};
console.log("requestArr===>" + JSON.stringify(requestArr));
docClient.batchGet(params, function (err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else { }
});
 推荐操作数据库时使用以上操作,操作DynamoDB数据库有两种方式,另一种见DynamoBD常见操作(二),这种方式比较繁琐,不推荐使用

DynamoDB的基本操作(一)的更多相关文章

  1. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  2. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  3. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  4. 三、Redis基本操作——List

    小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ...

  5. 二、Redis基本操作——String(实战篇)

    小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...

  6. 一、Redis基本操作——String(原理篇)

    小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...

  7. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  8. C++ map的基本操作和使用

    原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可 ...

  9. python之最强王者(10)———文件(File)、输入输出的基本操作

    1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...

随机推荐

  1. [Java]ITOO初步了解 标签: javajbosstomcat 2016-05-29 21:14 3367人阅读 评论(34)

      开始接触Java的ITOO了,这两天在搭环境,结果发现,哇,好多没接触过的东西,先写篇博客来熟悉一下这些工具. JBoss 基于Tomcat内核,青胜于蓝   Tomcat 服务器是一个免费的开放 ...

  2. 阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型

    4月23日,2019中国联通合作伙伴大会在上海正式开幕,本次大会以“合作不设限,共筑新生态”为主题,涉及5G.边缘计算.云计算.物联网.新媒体.人工智能.互联网化等各领域超过600家合作伙伴与3万名各 ...

  3. 归并排序及应用 (nyoj 117 求逆序数)

    求逆序数 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中 ...

  4. 【hiho一下 第147周】小Hi的烦恼

    [题目链接]:http://hihocoder.com/contest/hiho147/problem/1 [题意] [题解] bitset的应用; 设better[j][i]表示第j个科目排名为1. ...

  5. HZOI20190714 T1序列

    什么沙雕题啊……考察的是啥啊,分类咋搞啊……愁死我了…… 先把作者的正解放出来: 序列因为选出的一段是一个等比序列的子序列,我们分为两种情况:1. q=1,相当于找一个最长每个数都相等的子串,这个扫一 ...

  6. Python基础:28正则表达式

    一:概述 正则表达式(RE)为高级文本模式匹配,以及搜索-替代等功能提供了基础.正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们能匹配多个字符串.Python通过标准库的re模块支持正则表达 ...

  7. linux下oracle查询中文乱码

    export NLS_LANG=AMERICAN_AMERICA.UTF8

  8. flowable笔记 - 简单的通用流程

    简介 通用流程可以用于一些基本的申请,例如请假.加班. 大致过程是: 1. 创建申请 2. 分配给审批人(需要审批人列表,当前审批人) -> 有下一个审批人 -> 3 -> 无 -& ...

  9. js读取cookie 根据cookie名称获取值、赋值

    借鉴:原作者https://blog.csdn.net/zouxuhang/article/details/80548417   //方法1   //存在问题:如果cookie中存在 aaaname= ...

  10. poj 3278(hdu 2717) Catch That Cow(bfs)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...