ykn*_*121 5 node.js amazon-dynamodb aws-sdk
我正在使用 Nodejs 开发一些东西,并且我在 DynamoDB 上有一个表。因此,我使用 aws-sdk for nodejs 来处理这两件事。
这是一个例子。ID 和名称是表的组合键。
ID name otherData
----------------------
1 Matt 123
1 Mary 1234
2 Mary 2312
4 Mary 3123
4 Pet 3123
Run Code Online (Sandbox Code Playgroud)
我想要的是获取不同 ID 的列表。所以,预期输出是
ID = [1, 2, 4]
Run Code Online (Sandbox Code Playgroud)
这个怎么做?
1) 执行 DynamoDB 扫描以获取所有(非唯一)ID 值。ProjectionExpression 限制返回的结果属性,在本例中仅限 ID。请注意,这并不会使您的扫描速度更快。当您执行扫描时,您将获得一个包含结果的 JSON 对象。您可以使用 JMES 获取 ID 数组 (data.Items.ID)。
2)使数组在您的nodejs代码中唯一(例如使用下面的ArrNoDupe代码函数)
var params = {
ProjectionExpression: "ID",
TableName: "YOUR_TABLE"
};
ddb.scan(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log(ArrNoDupe(data.Items.ID));
});
}
});
function ArrNoDupe(a) {
var temp = {};
for (var i = 0; i < a.length; i++)
temp[a[i]] = true;
var r = [];
for (var k in temp)
r.push(k);
return r;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6563 次 |
| 最近记录: |