DynamoDB FilterExpression with multiple condition javascript



我有一个带有分区键和排序键的表,还有另外 2 列。我无法使用 JavaScript AWS 开发工具包在 DynamoDB 中使用AND使用多个条件的FilterExpression获取项目。任何人都可以提供正确的代码来检索 FilterExpression 中具有多个条件的数据吗? 我的代码如下:

var params = {
TableName: 'Department',
KeyConditionExpression: '#company = :companyId'
, ExpressionAttributeNames: {
'#company': 'CompanyID',
'#dType': 'DepartmentType',
'#cTime': 'CreatedTime'
}
, ExpressionAttributeValues: {
':companyId': 'Test',
':deptType': dType,
':daysPrior': 1250456879634
},FilterExpression: '#dType = :deptType AND #ts > :daysPrior' 
};

查询格式有拼写错误(CreatedTime后( 为了保持干净,请使用双引号或单引号,但不要同时使用两者。 我使用了双引号,就像 aws 示例代码一样。

var params = {
TableName: "Department",
KeyConditionExpression: "#company = :companyId", 
ExpressionAttributeNames: {
"#company": "CompanyID",
"#dType": "DepartmentType",
"#cTime": "CreatedTime" //here
},
ExpressionAttributeValues: {
":companyId": "Test",
":deptType": dType,
":daysPrior": 1250456879634
},
FilterExpression: "#dType = :deptType AND #cTime > :daysPrior" 
};

如果您需要更复杂的筛选表达式来扫描或查询 DynamoDB 表,可以使用括号,例如:

var params = {
TableName: "Department",
...
FilterExpression: "(not (#type <> :type and #company = :company)) or (#timestamp > :timestamp)",
...
};

注意:此示例过滤器表达式没有特定的含义。

最新更新