我在Dynamo上有这样的东西:
{
"mail": "user@anonymous.com",
"data": {
"type": 1
}
}
我在“邮件”属性上有一个索引,我试图查询使用过滤属性“数据”的指定邮件找到的所有数据。像这样:
const params = {
TableName: 'tableName',
IndexName: "mail_index",
KeyConditionExpression: "#mail = :mail",
FilterExpression: '#status = :val',
ExpressionAttributeNames: {
'#mail': 'mail',
'#status': 'data.type'
},
ExpressionAttributeValues: {
':mail': 'user@anonymous.com',
':val': {N: 5}
}
};
dynamoDoc.query(params, (err, data) => {
console.log(data);
});
但是我总是得到空洞的结果。我在做什么错了?
答案 0 :(得分:1)
尝试一下:
const params = {
TableName: 'tableName',
IndexName: "mail_index",
KeyConditionExpression: "#mail = :mail",
FilterExpression: '#data.#type = :val',
ExpressionAttributeNames: {
'#mail': 'mail',
'#data': 'data',
'#type': 'type'
},
ExpressionAttributeValues: {
':mail': 'user@anonymous.com',
':val': {N: 5}
}
};
由于data
和type
均为reserved words,DynamoDB需要将两者都转义。