检查 table 项是否不存在。如果返回的 'Items' 数组为空,如何检查? Javascript/DynamoDB
Check if a table item doesn't exist. How to check returned 'Items' array if empty? Javascript/DynamoDB
我正在尝试查看某个项目是否存在于 DynamoDB 数据库中。但是我找不到直接的答案。所以我正在使用 getItem()
操作。
这个returns一个JSON。在文档中它说如果在数据库中找不到任何项目,则返回的项目应该为空。但是,我似乎无法弄清楚如何检查此返回值是否为空。我试过 if(data == "undefined"){
的变体
//PutItem - DynamoDB table: check if group exists
var dynamodb5 = new AWS.DynamoDB({ region: AWS.config.region });
var identityId = AWS.config.credentials.identityId;
var params = {
Key: {
"groupName": {
S: groupname
}
},
TableName: "group"
};
dynamodb5.getItem(params, function(err, data) {
if (err){
console.log(err, err.stack); // an error occurred
alert("This group doesnt exist.")
}else{
// successful response console.log(data);
if(data.Items[0] == "undefined"){
console.log("ITS WORKING");
}
}
getItem
响应不包括 Items
,它包括 Item
(请参阅 documentation)。它将 return 一个项目,如果有一个项目具有给定的键,或者没有项目。
你可以这样检测:
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB({ region: 'us-east-1' });
const params = {
Key: {
'groupName': {
S: groupname,
},
},
TableName: 'group',
};
ddb.getItem(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else if (data.Item) {
console.log(JSON.stringify(data));
} else {
console.log('Success, but no item');
}
});
小提示:现在我们有 let
和 const
.
,几乎没有理由使用 var
要补充两点:
Item
用于 GetItem,Items
用于查询。
AWS 文档还提到 ResourceNotFoundException
“对于试图访问不存在的 table 或索引的操作”。为避免混淆:
- 获得一个不存在的物品 return
undefined
物品
- 尝试从不存在的 table 或不存在的索引中获取某些内容将导致该错误。例如,您输入了错误的 table 名称或主索引。
我正在尝试查看某个项目是否存在于 DynamoDB 数据库中。但是我找不到直接的答案。所以我正在使用 getItem()
操作。
这个returns一个JSON。在文档中它说如果在数据库中找不到任何项目,则返回的项目应该为空。但是,我似乎无法弄清楚如何检查此返回值是否为空。我试过 if(data == "undefined"){
//PutItem - DynamoDB table: check if group exists
var dynamodb5 = new AWS.DynamoDB({ region: AWS.config.region });
var identityId = AWS.config.credentials.identityId;
var params = {
Key: {
"groupName": {
S: groupname
}
},
TableName: "group"
};
dynamodb5.getItem(params, function(err, data) {
if (err){
console.log(err, err.stack); // an error occurred
alert("This group doesnt exist.")
}else{
// successful response console.log(data);
if(data.Items[0] == "undefined"){
console.log("ITS WORKING");
}
}
getItem
响应不包括 Items
,它包括 Item
(请参阅 documentation)。它将 return 一个项目,如果有一个项目具有给定的键,或者没有项目。
你可以这样检测:
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB({ region: 'us-east-1' });
const params = {
Key: {
'groupName': {
S: groupname,
},
},
TableName: 'group',
};
ddb.getItem(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else if (data.Item) {
console.log(JSON.stringify(data));
} else {
console.log('Success, but no item');
}
});
小提示:现在我们有 let
和 const
.
var
要补充两点:
Item
用于 GetItem,Items
用于查询。
AWS 文档还提到 ResourceNotFoundException
“对于试图访问不存在的 table 或索引的操作”。为避免混淆:
- 获得一个不存在的物品 return
undefined
物品 - 尝试从不存在的 table 或不存在的索引中获取某些内容将导致该错误。例如,您输入了错误的 table 名称或主索引。