我正在开发一个项目,我们使用Dynamodb作为数据库,我有一个具有这种结构的文档:
{
"shop_id": "hh-delightme",
"shoppers": [
{
"email": "hatim.haffane@gmail.com",
"name": "hatim haffane"
},
{
"email": "xxx.zzz@gmail.com",
"name": "bxdsf sdf sd f"
}
]
},{
"shop_id": "it-delightme",
"shoppers": [
{
"email": "hatim.haffane@gmail.com",
"name": "hatim haffane"
},
{
"email": "xxx.zzz@gmail.com",
"name": "bxdsf sdf sd f"
}
]
}
我有两个索引是shop-id-index和email-index,所以我想做的是在shop_id“hh-delightme”中使用电子邮件“hatim.haffane@gmail.com”获取浅滩/ p>
我尝试了这段代码,但没有成功
var params = {
TableName:"shopper",
KeyConditionExpression:"shop_id = :shop_id AND email = :email",
ExpressionAttributeValues: {
":shop_id":store,
":email":email
}
};
docClient.query(params, function(err, data) {}
任何人都可以帮我完成这件事,谢谢
答案 0 :(得分:2)
我相信你不能同时查询两个索引。 您可以将查询更改为扫描 - 但这会更慢,因为它将扫描每个查询的整个表 - 或者您只能查询其中一个索引。 我查询您认为会返回最少结果数量的索引(可能是电子邮件),然后按shop_id过滤nodejs代码中的结果。