本文介绍了如何在扫描操作中使用FilterExpression在DynamoDB中查询对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何通过扫描操作在dynamoDb中查询仅包含"Tue"的对象(workingDays)键的数组,我已使用过滤器表达式查询,但没有任何结果.
How to Query array of objects(workingDays) key containing only "Tue" in dynamoDb with Scan Operation,I have queried using filter Expression but i am getting no results.
var queryData = {
TableName: tableName,
FilterExpression: "contains (workingDays, :dayVal)",
ExpressionAttributeValues: {
":dayVal": {
S:"Tue"
}
}
};
console.log("getParams ==>", queryData)
dynamodb.scan(queryData, function (err, details) {
if (err) {
console.log(err, err.stack); // an error occurred
callback(err, null)
}
else{
callback(null, details)
}
})
您查询中的
推荐答案
ExpressionAttributeValues 包含字符串["S"]作为值"Tue"的键",如表中所示,"workingDays" 是包含日期键值的地图对象列表.
ExpressionAttributeValues in your query contains String ["S"] as 'key' for value 'Tue', where as in your table, 'workingDays' is a list of map object containing value for day keys.
尝试以下代码:
var queryData = {
TableName: tableName,
ExpressionAttributeNames: {
"#workingDays": "workingDays",
},
FilterExpression: "contains (#workingDays, :dayVal)",
ExpressionAttributeValues: {
":dayVal": {
"day":"Tue"
}
}
};
console.log("getParams ==>", queryData)
docClient.scan(queryData, function (err, details) {
if (err) {
console.log(err, err.stack); // an error occurred
// callback(err, null)
}
else{
// callback(null, details)
console.log(details);
}
});
这篇关于如何在扫描操作中使用FilterExpression在DynamoDB中查询对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!