Amazon DynamoDB 查询其键包含子字符串的项目
Amazon DynamoDB Query for Items whose key contains a substring
我正在使用 Amazon DynamoDB 数据库,并且我有一个以各种字符串作为键的项目列表。我想查询其键包含子字符串的项目。例如,如果某些键是:
"abcd_aaa"
"abcd_bbb"
"abcd_ccc"
我想查询一个键中包含"abcd"的位置,将返回这3项。这可能吗?
您只能使用相等运算符 (EQ
) 查询 hashKey
。也就是说,如果这些值 ("abcd_aaa"、"abcd_bbb"、"abcd_ccc") 属于您的 hashKey
,那么您必须完全提供它们。另一方面,Query
操作确实允许在 rangeKey
上使用一些额外的比较运算符进行部分匹配:
EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
有关详细信息,请参阅 Query
documentation。
一种可能是使用 hashKey and rangeKey
,其中代码的第一部分是 hashKey
,最后部分是 rangeKey
,示例:
hashKey : abcd
rangeKey : aaa
通过在按 hashKey
(abcd) 查询时执行此操作,您将收到按 rangeKey
排序的所有三个记录
扫描即可
像这样
var params = {
TableName: "TABLE",
ScanFilter: {
"id": {
ComparisonOperator: "CONTAINS",
AttributeValueList: ["abcd"]
}
}
};
var template = null;
ddb.scan(params, function (err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
//console.log("Query succeeded.");
data.Items.forEach(function (item) {
console.log(item);
});
}
});
我正在使用 Amazon DynamoDB 数据库,并且我有一个以各种字符串作为键的项目列表。我想查询其键包含子字符串的项目。例如,如果某些键是:
"abcd_aaa"
"abcd_bbb"
"abcd_ccc"
我想查询一个键中包含"abcd"的位置,将返回这3项。这可能吗?
您只能使用相等运算符 (EQ
) 查询 hashKey
。也就是说,如果这些值 ("abcd_aaa"、"abcd_bbb"、"abcd_ccc") 属于您的 hashKey
,那么您必须完全提供它们。另一方面,Query
操作确实允许在 rangeKey
上使用一些额外的比较运算符进行部分匹配:
EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
有关详细信息,请参阅 Query
documentation。
一种可能是使用 hashKey and rangeKey
,其中代码的第一部分是 hashKey
,最后部分是 rangeKey
,示例:
hashKey : abcd
rangeKey : aaa
通过在按 hashKey
(abcd) 查询时执行此操作,您将收到按 rangeKey
扫描即可
像这样
var params = {
TableName: "TABLE",
ScanFilter: {
"id": {
ComparisonOperator: "CONTAINS",
AttributeValueList: ["abcd"]
}
}
};
var template = null;
ddb.scan(params, function (err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
//console.log("Query succeeded.");
data.Items.forEach(function (item) {
console.log(item);
});
}
});