【发布时间】:2018-04-27 21:21:33
【问题描述】:
我是 AWS DynamoDB 的初学者,我想使用 SENDTO.emailAddress = "first@first.com" 作为 FilterExpression 扫描 DynamoDB。
数据库结构如下所示
{
ID
NAME
MESSAGE
SENDTO[
{
name
emailAddress
}
]
}
样本数据
{
ID: 1,
NAME: "HELLO",
MESSAGE: "HELLO WORLD!",
SENDTO: [
{
name: "First",
emailAddress: "first@first.com"
},
{
name: "Second",
emailAddress: "second@first.com"
}
]
}
我想检索与 emailAddress 匹配的文档。我尝试使用过滤器表达式进行扫描,这是我检索数据的代码。我正在使用 AWS Javascript SDK。
let params = {
TableName : "email",
FilterExpression: "SENDTO.emailAddress = :emailAddress",
ExpressionAttributeValues: {
":emailAddress": "first@first.com",
}
}
let result = await ctx.docClient.scan(params).promise();
【问题讨论】:
-
您可以使用分区键或分区键和排序键的组合从dynamodb表中获取数据。另一方面,您可以使用索引。
-
我试过分区键和排序键没有帮助,我读到 DynamoDB 不支持此操作。我们可以查询对象属性,但不能查询对象数组属性。
-
我更新了答案
标签: amazon-dynamodb aws-sdk-nodejs aws-sdk-js