var params = {
          ExpressionAttributeNames: {
            "#AT": "date"
          },
          ExpressionAttributeValues: {
            ":t": {
              BOOL: false
            }
          },
          Key: {
            "#AT": {
              N: data.Items[i].date.N
            },
            "accountid": {
              S: data.Items[i].accountid.S
            }
          },
          ReturnValues: "ALL_NEW",
          TableName: "tab",
          UpdateExpression: "SET #AT = :t"
        }
        db.updateItem(params, function (err, data) {
          if (err) console.log(err);
          else {
            //console.log(data);
          }
        });

क्या हो रहा है कि कोड काम नहीं कर रहा है। यह मुझे यह त्रुटि देता है:

संदेश: 'प्रदान किया गया मुख्य तत्व स्कीमा से मेल नहीं खाता'

तालिका विवरण में यही है:

प्राथमिक विभाजन कुंजी - दिनांक (संख्या)

प्राथमिक सॉर्ट कुंजी -

1
AmazingDayToday 24 अक्टूबर 2018, 22:24

1 उत्तर

सबसे बढ़िया उत्तर

समस्या यह है कि आपके पास अपने पैरा में एक समग्र कुंजी (दिनांक + एकाउंटिड) है, लेकिन आपकी तालिका केवल विभाजन कुंजी के साथ कॉन्फ़िगर की गई है।

या तो इसका इस्तेमाल करें:

  var params = {
    ExpressionAttributeValues: {
      ":t": { BOOL: false }
    },
    ExpressionAttributeNames: {
      "#at": "isRelevant",
    },
    Key: {
      "date": { N: data.Items[i].date.N }
    },
    ReturnValues: "ALL_NEW",
    TableName: "tab",
    UpdateExpression: "SET #at = :t"
  }
  db.updateItem(params, function (err, data) {
    if (err) {
      console.log(err);
    } else {
      //console.log(data);
    }
  });

या, यदि आप accountid को सॉर्ट कुंजी के रूप में उपयोग करने की अपेक्षा करते हैं, तो आपको अपनी तालिका का पुनर्निर्माण करना होगा।

1
thomasmichaelwallace 24 अक्टूबर 2018, 19:43