У меня есть модель данных DynamoDB для моих элементов, которая довольно вложенная, и я хотел бы обновить определенное значение в JSON моего элемента на основе условия, и я не могу найти хороший способ сделать то же самое.Упрощенная версия моей модели данных выглядит следующим образом:
{
"name": "test",
"Script": [
{
"DeliverDate": "26-09-2018",
"ID": "SCR001",
"Name": "SCR001",
"nonname": "automation",
"Purpose": "Help",
"Status": "null",
"Time": "4"
},
{
"DeliverDate": "27-09-2018",
"ID": "SCR002",
"Name": "2",
"nonname": "automation",
"Purpose": "Help2",
"Status": "Validated",
"Time": "5"
}
],
"Header": [
{
"ID": "DEV001",
"Name": "API",
"nonname": "project",
"Status": "null",
"Time": "10"
}
],
"Forms": [
{
"ID": "SHIFT001",
"nonname": "Forms",
"reply word count": "300",
"Shiftdate": "21-09-2018",
"Status": "null",
"Time": "8",
"URL": "https://www.google.com"
}
],
"Testing": [
{
"Gone": "tests123",
"EndDate": "15-06-2018",
"ID": "HIRING001",
"location": "London",
"nonname": "testing",
"StartDate": "15-06-2018",
"Status": "null",
"Time": "22"
}
],
"ABC": [
{
"ID": "ABC001",
"nonname": "query",
"Percentage": "100%",
"PublishedDate": "26-12-2018",
"Status": "null",
"Time": "400",
"Title": "trail",
"URL": "http://google.com"
}
],
"BCD": [
{
"Duration": "2",
"ID": "BCD001",
"nonname": "BCD",
"PublishedDate": "26-12-2018",
"Status": "null",
"Time": "400",
"Title": "AWS App"
}
],
"HELLO": [
{
"Article name": "User",
"Article url": "http://google.com",
"ID": "HELLO001",
"nonname": "HELLO",
"Publish Date": "24-10-2018",
"Status": "null",
"Time": "800",
"Views": "300",
"Word Count": "500"
}
],
"MASSEFFECT": [
{
"DilieverDate": "26-12-2018",
"ID": "MASSEFFECT001",
"nonname": "l3",
"SessionDuration": "4",
"Status": "null",
"Time": "400",
"topic": "API"
}
],
"DEADSPACE": [
{
"ID": "DEADSPACE001",
"Month": "Jan",
"nonname": "DEADSPACE",
"Status": "null",
"Time": "300",
"Year": "2018"
}
],
"GAMING": [
{
"Batch": "Batch",
"DelieverDate": "26-12-2018",
"ID": "GAMING001",
"nonname": "GAMING",
"Profile": "trial",
"SessionDuration": "4",
"Status": "null",
"Time": "400",
"Topic": "GAMING"
}
],
"ZOO": [
{
"ActivityName": "ZOO",
"EndTime": "Everything happens",
"ID": "ZOO001",
"nonname": "others",
"ProofSubmitted": "Everything happens all once.",
"StartTime": "avc",
"Status": "null",
"Time": "keyword"
},
{
"ActivityName": "PS4",
"EndTime": "Everything happens!!!!!",
"ID": "OTHER001",
"nonname": "others",
"ProofSubmitted": "Everything happens all once.",
"StartTime": "avc",
"Status": "null",
"Time": "keyword"
}
],
"WORK": [
{
"Date": "26-12-2018",
"ID": "WORK001",
"nonname": "work",
"Status": "null",
"Time": "4",
"Topic": "work"
}
]
}
В этом случае я хотел бы обновить параметр «Статус» в блоке, если поле «ID» в этом блоке содержитконкретное значение.Например, если «ID» в блоке - «WORK001», я хотел бы изменить «Status» на «Changed», и мой вариант использования включает изменение поля «Status» любого подблока JSON на основе ID.в этом подблоке.
Пример:
"WORK": [
{
"Date": "26-12-2018",
"ID": "WORK001",
"nonname": "workshop",
"Status": "null",
"Time": "4",
"Topic": "workshop"
}
]
Кому:
"WORK": [
{
"Date": "26-12-2018",
"ID": "WORK001",
"nonname": "work",
"Status": "Changed",
"Time": "4",
"Topic": "work"
}
]
Я рассмотрел вызов UpdateItem API и API PutItem вызов в документации AWS, но я не могу найти хороший способ использовать вызовы API для этого варианта использования.Любая помощь о том, как это сделать, была бы действительно полезной.Заранее спасибо.