我正在使用JSON结构来存储某个人的详细信息。基本上名称,电话,registeredTimestamp等,将是其他属性,主键将是电子邮件地址。使用NodeJS将新对象追加到DynamoDB中的JSON数组中
markedLocations,visitedLocations,searchHistory和recommendation是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。 所以markedLocations看起来应该是喜欢 -
"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"
}
]
代码/ Schema-
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 link
正在更新一个JSON数组中的AWS dynamoDB
更新一组DB迪纳摩使用节点的js link
如何更新使用的NodeJS dynamoDB项目? link
并检查了AWS文档UpdateItem API。我没有发现任何与我的问题/疑问有关的事情。
请你能告诉我是否有方法可以在NodeJS中添加一个新的JSON对象的JSON数组?我不能继续如何实施。
OR
我应该建立单独的表为每个阵列和具有电子邮件作为主键和时间戳作为排序键和前进? PS:我是DynamoDB的新手,我之前和MongoDB一起工作过,并且有办法在那里使用JSON数组和对象。无法在此找到方法。
你知道如何做到这一点的Javascript?这就是你如何去做的。 Node.JS使用Javascript。 –
@RobertHarvey号我不知道如何解决JS中的这个问题。整个AWS文档都有使用Java,PHP和.Net的示例和API演示。我不确定要使用什么API或如何构建代码。我列出的StackOverflow问题根本没有答案,或者主要是替换现有的值。我需要追加到现有的数组。 – bozzmob
这听起来像你正在试图找到一个API或库的地方为一个简单的操作,应该很容易在Javascript中完成。看看[这篇文章](http://stackoverflow.com/questions/4538269),特别是[这个答案](http://stackoverflow.com/a/4538314/102937)。你不需要NodeJS,Dynamo或其他任何东西来实现这一点。请注意,该帖子的作者犯了同样的错误; *你不需要jQuery来做这件事。* –