带多条件javascript的DynamoDB FilterExpression
我有一个带有分区键和排序键的表,还有另外两列。我无法使用javaScript AWS SDK在DynamoDB中使用和的多个条件下使用FilterExpression获取项目。任何人都可以提供正确的代码来检索FilterExpression中具有多个条件的数据吗? 我的代码如下:带多条件javascript的DynamoDB FilterExpression,javascript,amazon-dynamodb,Javascript,Amazon Dynamodb,我有一个带有分区键和排序键的表,还有另外两列。我无法使用javaScript AWS SDK在DynamoDB中使用和的多个条件下使用FilterExpression获取项目。任何人都可以提供正确的代码来检索FilterExpression中具有多个条件的数据吗? 我的代码如下: var params = { TableName: 'Department', KeyConditionExpression: '#company = :companyId' , Express
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 #ts > :daysPrior"
};
如果需要更复杂的筛选表达式来扫描或查询DynamoDB表,可以使用括号,例如:
var params = {
TableName: "Department",
...
FilterExpression: "(not (#type <> :type and #company = :company)) or (#timestamp > :timestamp)",
...
};
var参数={
表格名称:“部门”,
...
过滤器表达式:“(非(#type:type和#company=:company))或(#timestamp>:timestamp)”,
...
};
注意:此示例筛选器表达式没有特定含义