マイドキュメント内のJSON配列を更新すると、このようになります:2016102973634-DF:はAWS DynamoDBの
{
"data": {
"eventId": "20161029125458-df-d",
"name": "first",
"purpose": "test",
"location": "yokohama",
"dateArray": [],
"attendees": [
{
"attendeeId": "2016102973634-df",
"attendeeName": "lakshman",
"personalizedDateSelection": {}
},
{
"attendeeId": "2016102973634-tyyu",
"attendeeName": "diwaakar",
"personalizedDateSelection": {}
}
]
}
}
言ってやるが、私はattendeeIdで出席者JSON配列を更新する必要があります。私はの更新と条件式を使って多くの方法を試しましたが、成功しませんでした。ここで
は私の試みです:
const params = {
TableName: "event",
Key: {
"eventId": eventId
},
UpdateExpression: "SET attendees[???] = ",
ConditionExpression: attendees.attendeeId = "2016102973634-df",
ExpressionAttributeValues: {
":attendee" : attendeeList
},
ReturnValues: "ALL_NEW"
};
dynamo.update(params, (err, data) => {
if (err) {
return reject(err);
}
console.log(data.Attributes);
});
は、配列にJSONを更新するためのすべてのリソースが見つかりませんでした。
@ notionquestのコメントの後: - JsonMarshallerを使用していません。当初、私はこのような参加者フィールドに空の配列を追加しました:
{
"eventId": "20161029125458-df-d",
"name": "first",
"purpose": "test",
"location": "yokohama",
"dateArray": [],
"attendees": []
}
をしてから、新しい出席者は、私はこのような参加者プロパティに追加来るとき:あなたが持っているとして
const attendee = {
"attendeeName": "user1",
"personalizedDateSelection": {"today": "free"}
}
const attendeeList = [attendee];
const eventId = "20161029125458-df-d";
const params = {
TableName: "event",
Key: {
"eventId": eventId
},
UpdateExpression: "SET attendees = list_append(attendees, :attendee)",
ExpressionAttributeValues: {
":attendee" : attendeeList
},
ReturnValues: "ALL_NEW"
};
dynamo.update(params, (err, data) => {
if (err) {
return reject(err);
}
console.log("in update dynamo");
console.log(data.Attributes);
});
上記のスニペットに記載されているように、最初に空の[]配列を追加し、を使用しての新しい出席者を追加します。次に、配列内の特定のJSONを更新する方法を示します。あなたがそれが不可能だと言うなら、他に何を試みることができますか?
- 全JSONを取得します。
は、私は、これは試してみてください。
- JSOnを操作し、nodeJSで必要なものを変更します。
- そして、新しいJSONをdynamoDBに更新します。
- しかしこれは、dynamoDBへの2回の呼び出しを消費します。これは非効率的です。
ラウンドウェイがありますか?
JsonMarshallerを使用してDynamoDBにJSONとしてデータを保存しましたか?はいの場合、APIにJSONデータを更新するオプションはありません。 – notionquest
@notionquest配列にJsonをどのように挿入したかで質問を更新しました。あなたの考えを知りたいですか? –