我想根据一些过滤器从 dynamodb 表中检索项目列表。在过滤器中,我有散列键列表(应返回具有该散列键之一的记录)和记录上的更多过滤器,例如“状态”字段的值为“已批准”。因此,如果该项目具有我的列表中的哈希键且状态字段值为“已批准”,则应返回它。
我怎样才能做到这一点 ?
我不能使用 QUERY 因为根据我的理解它只需要 1 个哈希键值。
我不能使用 BatchGet,因为它不接受过滤器表达式。
我有一个名为 User 的表。它有一个用户 ID 的哈希键和一个组织 ID 的范围键。
如何返回组织 ID 为“3”的所有用户
(顺便说一下,这是一个 Lambda 函数)
这段代码给了我一个错误:
console.log('Loading event');
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
exports.handler = function(event, context) {
dynamodb.listTables(function(err, data) {
});
var params = {
"TableName": "PoliceUser",
"Key":
{"User Id" : {"S":event.objectId}, "Organization Id" : {"S": event.organizationId}
},
"ProjectionExpression": "#firstName, #lastName, #longitude, #latitude, #organizationName",
"ExpressionAttributeNames" : {"#firstName": "First Name", "#lastName": "Last Name", "#longitude": "Longitude", "#latitude": "Latitude", "#organizationName": "Organization"},
"ConsistentRead" : true
}
dynamodb.BatchGetItem(params, function(err, data)
{ …Run Code Online (Sandbox Code Playgroud) 具体来说,什么时候使用其中一个更好?我现在正在使用BatchGetItem,它似乎非常缓慢.