码迷,mamicode.com
首页 > 数据库 > 详细

[AWS][Nosql]DynamoDB动手实验101

时间:2020-06-16 10:20:46      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:nta   alt   value   ref   enter   mic   详细   变量   sso   

这个实验包括:

  1. 创建一个DynamoDB 的Table(表)
  2. 添加数据到Table中
  3. 查询Table中的数据
  4. 删除数据库
  5. 补充,JSON和 Python 的query

Task1:创建一个DynamoDB 的Table(表)

技术图片

技术图片

Task2:添加数据到Table中

技术图片

技术图片

技术图片

技术图片

技术图片

技术图片

Task3:查询Table中的数据

技术图片

条件是and ,不是or。
可以添加Filter

技术图片

Task4:删除数据库

技术图片

技术图片

那么应用程序查询的方式呢?

以下是 DynamoDB 中的几个 Query 示例:

###返回 Aritist = ‘No One You Know‘ SongTitle=‘Call Me Today‘ 的歌曲:
{
TableName: "Music",
KeyConditionExpression: "Artist = :a and SongTitle = :t",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Call Me Today"
}
}

###返回 Aitist=‘No One You Know’ 的所有歌曲:

{
TableName: "Music",
KeyConditionExpression: "Artist = :a",
ExpressionAttributeValues: {
":a": "No One You Know"
}
}

###返回Aritist =‘No One You Know‘ 并且 SongTitle 开头为Today 并且价格小于1 的所有歌曲:

{
TableName: "Music",
KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)",
FilterExpression: "price < :p",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Today",
":p": 1.00
}
}

###在 DynamoDB 中,必须使用 ExpressionAttributeValues 作为表达式参数(例如,KeyConditionExpression和 FilterExpression)中的占位符。
这类似于在关系数据库中使用绑定变量,在运行时将实际值代入 SELECT语句。 下边是query的语法:

###返回 Aritist = ‘No One You Know‘ SongTitle=‘Call Me Today‘ 的歌曲:
{
TableName: "Music",
KeyConditionExpression: "Artist = :a and SongTitle = :t",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Call Me Today"
}
}

###返回 Aitist=‘No One You Know’ 的所有歌曲:

{
TableName: "Music",
KeyConditionExpression: "Artist = :a",
ExpressionAttributeValues: {
":a": "No One You Know"
}
}

###返回Aritist =‘No One You Know‘ 并且 SongTitle 开头为Today 并且价格小于1 的所有歌曲:

{
TableName: "Music",
KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)",
FilterExpression: "price < :p",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Today",
":p": 1.00
}
}

###Python的查询语法:

###返回 Artist=‘No One You Know‘ 并且SongTitle=‘Somewhere Down The Road‘ 的所有歌曲:

response = table.query(
KeyConditionExpression=Key(‘Artist‘).eq(‘No One You Know‘) & Key(‘SongTitle‘).eq(‘Somewhere Down The Road‘)
)
items = response[‘Items‘]
print(items)

##返回值,output:
[{
u‘Artist‘: u‘No One You Know‘,
u‘AlbumTitle‘: u‘Somewhat Famous‘,
u‘CriticRating‘: Decimal(‘8.4‘),
u‘Year‘: Decimal(‘1984‘),
u‘Genre‘: u‘Country‘,
u‘SongTitle‘: u‘Somewhere Down The Road‘
}
]

###返回Aritist =‘No One You Know‘ 并且 SongTitle 开头为 Look 的所有歌曲:
response = table.query(
KeyConditionExpression=Key(‘Artist‘).eq(‘The Acme Band‘) & Key(‘SongTitle‘).begins_with(‘Look‘)
)
items = response[‘Items‘]
print(items)

###output

[
{
u‘Genre‘: u‘Rock‘,
u‘Price‘: Decimal(‘0.99‘),
u‘Artist‘: u‘The Acme Band‘,
u‘SongTitle‘: u‘Look Out, World‘,
u‘AlbumTitle‘: u‘The Buck Starts Here‘
}
]

有关DynamoDB的详细视频课程参考链接:https://edu.51cto.com/center/course/lesson/index?id=558308

[AWS][Nosql]DynamoDB动手实验101

标签:nta   alt   value   ref   enter   mic   详细   变量   sso   

原文地址:https://blog.51cto.com/13746986/2504839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!