带多条件javascript的DynamoDB FilterExpression

带多条件javascript的DynamoDB FilterExpression,javascript,amazon-dynamodb,Javascript,Amazon Dynamodb,我有一个带有分区键和排序键的表,还有另外两列。我无法使用javaScript AWS SDK在DynamoDB中使用和的多个条件下使用FilterExpression获取项目。任何人都可以提供正确的代码来检索FilterExpression中具有多个条件的数据吗? 我的代码如下: var params = { TableName: 'Department', KeyConditionExpression: '#company = :companyId' , Express

我有一个带有分区键和排序键的表,还有另外两列。我无法使用javaScript AWS SDK在DynamoDB中使用的多个条件下使用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 #ts > :daysPrior" 
};

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

var params = {
    TableName: "Department",
    ...
    FilterExpression: "(not (#type <> :type and #company = :company)) or (#timestamp > :timestamp)",
    ...
};
var参数={
表格名称:“部门”,
...
过滤器表达式:“(非(#type:type和#company=:company))或(#timestamp>:timestamp)”,
...
};
注意:此示例筛选器表达式没有特定含义