2017-06-19 80 views
0

我的项目看起来像在此之前有值:DynamoDB:检查项目更新

{id: some_id, 
owners: ["1", "2", "3"] 
} 

owner = "2"。我想写一个前提条件,确保owner在更新项目之前(put)位于owners。我已经写了一个前提条件,以确保更新前的项目ID是否存在:

var params = { 
     TableName: tableNames[event.pathParameters.resourceType], 
     Item: item, 
     ConditionExpression: "attribute_exists(id)" 
    }; 

我想为getscan/query这样做。这是可能的,或者我应该首先获得物品,然后在更新物品之前在代码中验证条件?

回答

0

请使用contains检查所有者是否有预期的所有者ID。

"ConditionExpression": "contains (owners, :ownersStr)", 
"ExpressionAttributeValues": { 
    ":ownersStr" : "2" 
}