2017-11-16 4 views
0

3つのパラメータでDynamoDBテーブルを参照しようとしていますが、動作しません。しかし、1パラメータでは完全に動作します。私を示しダイナモで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 ... 

私のエラーはどこですか?どうすれば解決できますか?あなたはスキャンAPIを使用しているとして、あるいはこれを作るために別の形...

+0

テーブルの主要な属性は何ですか?どうやら、キーとして定義された3つの属性を持つことはできません。 – notionquest

+0

hashKeyは "id"という名前のアトリビュートであり、ユニークですが、これらの3つのパラメータを検索したいのですが?ありがとう! – Norak

答えて

0

は、むしろKeyConditionExpressionよりFilterExpressionを使用してください。

FilterExpression:"#providerName = :providerName AND #productType = :productType AND #language = :language", 
関連する問題