1
votes

When I try to delete a document from DocumentDb in nodejs application, it gives the following bad request error.

{"code":"BadRequest","message":"Message: {\"Errors\":[\"The partition key supplied in x-ms-partitionkey header has fewer components than defined in the the collection.\"]}\r\nActivityId: fe385556-c91b-49a6-88ca-728a807b64ad, Request URI: /apps/63e70998-1c00-470e-8093-b4ef0dac16b1/services/2f865af8-4b67-4b6f-9919-9caf5a78d60c/partitions/75008c63-10a3-4ad3-85b7-d22883819270/replicas/131467476052794282p"}

DBHandler.prototype.removeItem = function(item, callback) {

this.client.deleteDocument(item._self, item, function(err, doc){
    if (err)
    {
        LogUtils.error("DBHandler.removeItem "+err.body);
    }
    else
    {
        callback(null, "success remove Item");
    }
});

}

1

1 Answers

2
votes

In order to delete a document in a partitioned collection, you must include the partition key value for that document in your request options.

Please change your code like the following:

DBHandler.prototype.removeItem = function(item, callback) {
  var options = {
    partitionKey: [your document's partition key value]
  };
  this.client.deleteDocument(item._self, options, function(err, doc){
      if (err)
      {
          LogUtils.error("DBHandler.removeItem "+err.body);
      }
      else
      {
          callback(null, "success remove Item");
      }
  });
}