amazon-web-services - DynamoDB 使用 NodeJS 扫描嵌套属性值
问题描述
现在我想扫描数据库中的所有条目以查找具有特定 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);
}
});
有人可以给我一个提示,我怎样才能找到我的条目?
解决方案
过滤器正在寻找一个名为attributes.playbackInfo.episodeGuid
而不是嵌套属性的属性。
要查找嵌套属性,表达式需要包含 to .
。
FilterExpression: "#attributes.#playbackInfo.#episodeGuid = :myEpisode",
ExpressionAttributeNames: {
'#attributes': 'attributes',
'#playbackInfo': 'playbackInfo',
'#episodeGuid': 'episodeGuid',
},
推荐阅读
- laravel - 如何在模型中使用 Mutators 设置值?
- ios - iOS 中的 Telenor easypaisa 支付网关实现
- python - 我未能训练 CNN + LSTM 模型。我怎么解决这个问题?数据集有问题吗?或模型?(Python 3.8x)
- python - 当任务已经注册时,如何修复未注册的芹菜任务?
- node.js - ngrok:DJango 和 nodejs:如何添加多个端口
- docker - Dockerfile 运行 Python Pipenv 构建失败
- python - 在 pil 中调整图像大小以在 tkinter gui 中使用它时如何解决此错误?
- tensorflow - Tensorflow 2.4.1 中的 BatchNormalization 层提供恒定的验证精度
- python - Python:以功能方式从字典中删除项目
- python-3.x - 什么时候应该将 Age 列转换为 float 或 int?