现在,我想扫描数据库中的所有条目以查找具有特定EpisodeGuid的所有条目。
我尝试了这段代码(以及一些变体),但始终得到0个结果。
var params = {
TableName: "myTableName",
FilterExpression: "#episodeGuid = :myEpisode",
ExpressionAttributeNames: {
'#episodeGuid': 'attributes.playbackInfo.episodeGuid',
},
// ExpressionAttributeValues: { ":myEpisode": { "S": "podlove-2018-12-06t13:07:10+00:00-f8a9b2963f313e5" } }
ExpressionAttributeValues: { ":myEpisode": "podlove-2018-12-06t13:07:10+00:00-f8a9b2963f313e5" }
};
oDynamoDBClient.scan(params, async function (err, data) {
console.log('read return');
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
}
});
有人可以提示我如何找到我的作品吗?
答案 0 :(得分:0)
过滤器正在寻找名为attributes.playbackInfo.episodeGuid
的属性,而不是嵌套的属性。
要查找嵌套属性,表达式必须包含到.
。
FilterExpression: "#attributes.#playbackInfo.#episodeGuid = :myEpisode",
ExpressionAttributeNames: {
'#attributes': 'attributes',
'#playbackInfo': 'playbackInfo',
'#episodeGuid': 'episodeGuid',
},