簡體   English   中英

具有多個條件的 DynamoDB FilterExpression javascript

[英]DynamoDB FilterExpression with multiple condition javascript

我有一個帶有分區鍵和排序鍵的表,還有另外 2 個列。 我無法使用 javaScript AWS SDK 在 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 #ts > :daysPrior" 
};

如果您需要更復雜的過濾器表達式來掃描或查詢您的 DynamoDB 表,您可以使用方括號,例如:

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

注意:此示例過濾器表達式沒有特定含義。

我的老板讓我做一個不能識別大寫或小寫的過濾器,然后去 HeLlo 搜索但找到相同的記錄。

{
data={
id=123123,
name="hello"}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM