2017-02-14 35 views
1

努力寻找如何查询表以从给定列表返回具有ids的行的示例。如何使用DynamoDB中的IN条件查询表

下面的查询引发对列入

var params = { 
      id: '7deb3df9-552b-47a4-aef3-ad601f141d50' 
     }; 

     var p = { 
      TableName: 'players', 
      KeyConditionExpression: 'id IN (:id)', 
      ExpressionAttributeValues: buildQuery(params) 
     }; 

回答

1

不能使用“IN”操作符与KeyConditionExpression,请参阅this SO question

详细信息您可能需要使用batchGetItem,而不是查询,尽管如此,效率并不高。

这里是如何您PARAMS可能看起来像:

var params = { 
    RequestItems: { 
     'players': { 
     Keys: [{ 
      id: "7deb3df9-552b-47a4-aef3-ad601f141d50", 
      rangeKey: "<range key 1>" // <--- if your table has a range key, you must specify its value here 
     }, { 
      id: "<ANOTHER ID 2>", 
      rangeKey: "<range key 2>" 
     }, { 
      id: "<ANOTHER ID 3>", 
      rangeKey: "<range key 3>" 
     }] 
     } 
    } 
}; 
dynamodbDoc.batchGet(params, function(err, data) { 

});