我在我的Movies
表中有以下項目(即數據)。以下查詢params
適合我。
您可以添加OP中存在的第三個屬性。它應該工作正常。
DynamoDB支持FilterExpression
上的複雜條件。根據一些條件
查詢表: -
var table = "Movies";
var year_val = 1991;
var title = "Movie with map attribute";
var params = {
TableName : table,
KeyConditionExpression : 'yearkey = :hkey and title = :rkey',
FilterExpression : '(records.K1 = :k1Val AND records.K2 = :k2Val) OR (records.K3 = :k3Val AND records.K4 = :k4Val)',
ExpressionAttributeValues : {
':hkey' : year_val,
':rkey' : title,
':k3Val' : 'V3',
':k4Val' : 'V4',
':k1Val' : 'V1',
':k2Val' : 'V2'
}
};
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err,
null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
}
});
我的數據: -
結果: -
GetItem succeeded: {
"Items": [
{
"title": "Movie with map attribute",
"yearkey": 1991,
"records": {
"K3": "V3",
"K4": "V4",
"K1": "V1",
"K2": "V2"
}
}
],
"Count": 1,
"ScannedCount": 1
}
您的意思是,只有滿足上述條件時,才需要GSI上的物品?這與關於RDBMS的觀點非常相似。 – notionquest
我想從我的dynamobd表中找到滿足上述條件的行。我不介意它是來自表格還是索引。但行應滿足條件。 –