노드를 사용하여 DynamoDB의 JSON 어레이에 새 개체 추가JS
JSON 구조를 사용하여 인물의 세부사항을 저장합니다.기본적으로 이름, 전화, registeredTimestamp 등이 기타 속성이 되며 프라이머리 키는 이메일주소가 됩니다.
marked Locations, visited Locations, search History 및 권장사항은 AWS에서 부르는 목록 또는 Map입니다.여기에는 다수의 JSON 개체가 포함됩니다.
JSON 구조 -
{
"name":"Mama Miya",
"phone":"9383883223",
"registeredTimestamp":"some-time",
"lastActiveTimestamp":"some-time",
"signinType":"facebook",
"additionalSigninData":{
"key1":"value1",
"key2":"value2"
},
"markedLocations":[
{
"latitude":"77.33",
"longitude":"12.33",
"name":"Home",
"description":"my new home",
"placeid":"55334433",
"image":"url/abc.png"
}
]
}
앱에서 사용자가 새 위치를 방문하면 표시된 위치에 새 JSON 개체를 추가해야 합니다.따라서 표시된 위치는 다음과 같습니다.
"markedLocations":[
{
"latitude":"77.33",
"longitude":"12.33",
"name":"Home",
"description":"my new home",
"placeid":"55334433",
"image":"url/abc.png"
},{
"latitude":"22.11",
"longitude":"22.55",
"name":"Ocean",
"description":"Ocean",
"placeid":"32423423",
"image":"url/icean.png"
}
]
코드/스케마-
var item = {
'email': {'S': req.body.email},
'phone': {'S': req.body.phone},
'registeredTimestamp': {'S': req.body.registeredTimestamp},
'lastActiveTimestamp': {'S': req.body.lastActiveTimestamp},
'signinType': {'S': req.body.signinType},
'version': {'S': req.body.version},
'markedLocations': {'L': req.body.markedLocations}
};
확인했습니다-
DynamoDB에서 Java 링크를 사용하여 목록 필드에 요소를 추가하려면 어떻게 해야 합니까?
AWS dynamoDB 링크에서 JSON 배열 업데이트
노드 Js 링크를 사용하여 Dynamo DB의 Set 업데이트
nodejs를 사용하여 dynamoDB의 항목을 업데이트하려면 어떻게 해야 합니까?링크
그리고 UpdateItem API에 대한 AWS 문서를 확인했습니다.나는 내 문제/의심과는 관련이 있는 것을 찾지 못했다.
NodeJS에서 JSON 어레이에 새로운 JSON 오브젝트를 추가하는 방법이 있는지 알려 주시겠습니까?어떻게 하면 좋을지 진행이 안 돼요.
또는
각 어레이에 대해 개별 테이블을 생성하여 이메일을 프라이머리 키로 하고 타임스탬프를 정렬 키로 하여 계속 진행해야 합니까?
PS: DynamoDB는 처음입니다.MongoDB는 이전에 작업한 적이 있습니다.JSON 어레이나 오브젝트도 사용할 수 있습니다.여기서 길을 찾을 수 없습니다.
UpdateExpression에서 및 를 함께 사용하여 존재하지 않을 수 있는 목록 열에 추가합니다.
var AWS = require('aws-sdk')
var DB = new AWS.DynamoDB.DocumentClient()
function appendMarkedLocation (personId, location) {
return DB.update({
TableName: 'people',
Key: { id: personId },
ReturnValues: 'ALL_NEW',
UpdateExpression: 'set #markedLocations = list_append(if_not_exists(#markedLocations, :empty_list), :location)',
ExpressionAttributeNames: {
'#markedLocations': 'markedLocations'
},
ExpressionAttributeValues: {
':location': [location],
':empty_list': []
}
}).promise()
}
appendMarkedLocation('somePeronId', {
latitude: '22.11',
longitude: '22.55',
name: 'Ocean',
description: 'Ocean',
placeid: '32423423',
image: 'url/icean.png'
}).then(console.log)
언급URL : https://stackoverflow.com/questions/41400538/append-a-new-object-to-a-json-array-in-dynamodb-using-nodejs
'itsource' 카테고리의 다른 글
파라미터를 루트 가드에 전달합니다. (0) | 2023.04.02 |
---|---|
스크립트에서 인라인 HTML에 반응하지 않고 jsx를 사용할 수 있습니까? (0) | 2023.04.02 |
리액트 렌더 함수에서 동적 href를 생성하는 방법 (0) | 2023.04.02 |
Angular 2 프로젝트의 Sinch API가 onCall Progressing에서 타임아웃되다 (0) | 2023.04.02 |
필터 논리는 프런트 엔드 또는 백엔드에 있어야 합니까? (0) | 2023.04.02 |