2017-11-16 5 views
0

3 개의 매개 변수로 DynamoDB 테이블을 참조하려고하지만 작동하지 않습니다. 그러나 1 매개 변수로 완벽하게 작동합니다. 저를 보여줍니다Dynamo와 함께 dynamodb에 3 개의 매개 변수가있는 쿼리

getDifferencesFromDB(params) { 

    return new Promise(function(resolve, reject) { 

     DifferentTermsPagesModel.scan(params).exec().then(function (err, data) { 
      if(err) { 
      reject(err); 
      } 
      else { 
      console.log("OK!!"); 
      resolve(data); 
      } 
     }); 

    }); 
    } 

오류 : 약속과 다른 함수

var params = { 

     TableName: "DifferentTermsPages", 

     KeyConditionExpression:"#providerName = :providerName and #productType = :productType and #language = :language", 

     ExpressionAttributeNames: { 
      "#providerName":"providerName", 
      "#productType":"productType", 
      "#language":"language" 
      }, 

     ExpressionAttributeValues: { 
      ":providerName":providerName, 
      ":productType":productType, 
      ":language":language 
      } 

     }; 


     OcrController.getDifferencesFromDB(params) 
     .then(function(dataDB) { 
      console.log("DATA = ", dataDB); 
     }).catch(function(err) { 
      console.error(err); 
     }); 

전화 :

내가 여기 ... NodeJs, DynamoDB의, Dynamoose와 일 해요 그리고 내 코드입니다 ...

TypeError: Cannot read property 'toDynamo' of undefined 
at Scan.exec (/API/src/node_modules/dynamoose/lib/Scan.js:57:23) 
at ... 

어디에서 오류가 있습니까 ?? 어떻게 해결할 수 있습니까? 아니면 또 다른 형태는

+0

테이블의 주요 특성은 무엇입니까? 분명히, 키로 정의 된 세 가지 속성을 가질 수 없습니다. – notionquest

+0

hashKey는 "id"라고하는 속성이며 고유합니다. 그러나이 3 개의 매개 변수를 검색하고 싶습니다. 감사! – Norak

답변

0

당신이 검색 API를를 사용하는 것처럼, FilterExpression보다는 KeyConditionExpression 사용하십시오 ...이를 확인합니다.

FilterExpression:"#providerName = :providerName AND #productType = :productType AND #language = :language",