如果不包含具有指定映射的元素,则插入列表

时间:2019-05-22 18:44:20

标签: node.js amazon-dynamodb apollo-server

如果它不包含具有指定映射的元素,我想追加到列表中。

让我们说数据库看起来像这样:

to_hex

仅当没有相同名称的活动时,我才想添加到活动列表中。目前,这是我得到的:

{
   activities: [
     {
       name: {
         fr: 'ex',
         en: 'ex'
       }
     }, ...
   ]
}

这样,每次更新都会起作用,即使我在函数中发送的async create(appId, name) { const newActivity = { id: uuid(), name }; const params = { ConditionExpression: 'not contains (activities, :activityName)', ExpressionAttributeValues: { ':activity': [newActivity], ':activityName': { name }, ':empty_list': [] }, Key: { id: appId }, TableName: this.tableName, UpdateExpression: 'SET activities = list_append(if_not_exists(activities, :empty_list), :activity)', }; return new Promise((resolve, reject) => { this.client.update(params, (err) => { if (err) { reject(err); } else { resolve(newActivity); } }); }); } 如下,新的活动也会添加到列表中:

name

还有另一种方法吗?还是我做错了什么?这东西不会引发任何错误,它可以正常工作。

0 个答案:

没有答案