title: How to prevent creating a new item in UpdateItem if the item does not exist
body: <p>I am running an AWS Lambda service written in Node.js that interacts with a DynamoDB database. One of my methods performs an update (AWS.DynamoDB.DocumentClient().update) on DynamoDB to update a specific item. My problem is, however, that when I try to update an item and that item does not exist, then the update method adds this new item to my table. This behavior is the default described in the <a href="http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html" rel="noreferrer">documentation</a> too.</p>
  
  <p>I do not want my method to create a new item if it does not yet exist. I want this to be an update only if the record exists. If it doesn't exist it must do nothing. How do I achieve this? I expect I should be able to use a ConditionalExpression to achieve this, but the attempts I've made at doing this have not been successful.</p>
  
  <p>An example of current parameters I'm sending to the update function is given below. In this example I want to update the user that has userId 123 and I want to set the isActive field to 'false' for this user (but I only want to do this if user 123 actually exists!)</p>
  
  <pre><code>const params = {
      TableName: 'users',
      Key: {
          userId: '123',
      },
      ExpressionAttributeValues: {
          ':isActive': 'false'
      },
      UpdateExpression: 'SET isActive = :isActive',
      ReturnValues: 'ALL_NEW',
  };
  </code></pre>