我有一个带分区键的表和排序键以及其他2列。我无法使用javaScript AWS SDK在DynamoDB中使用过滤器获取 AND 的多个条件。任何人都可以提供正确的代码来检索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"
};
答案 0 :(得分:16)
查询格式中存在拼写错误(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"
};
之后)
为了保持清洁,请使用双引号或单引号,但不能同时使用两个引号。
我使用了双引号,就像那里的样本代码一样。
this
答案 1 :(得分:0)
如果您需要更复杂的过滤器表达式来扫描或查询您的 DynamoDB 表,您可以使用方括号,例如:
var params = {
TableName: "Department",
...
FilterExpression: "(not (#type <> :type and #company = :company)) or (#timestamp > :timestamp)",
...
};
注意:此示例过滤器表达式没有特定含义。
答案 2 :(得分:0)
我的老板让我做一个不识别大小写和 HeLlo 搜索但找到相同记录的过滤器。
{
data={
id=123123,
name="hello"}
}