2016-11-18 2 views

答えて

2

次のサンプルが必要な場合があります。https://github.com/aliuy/documentdb-serverside-js/blob/master/stored-procedures/update.js。ここで

は簡易版です:

function updateSproc(id, update) { 
    var collection = getContext().getCollection(); 
    var collectionLink = collection.getSelfLink(); 
    var response = getContext().getResponse(); 

    tryQueryAndUpdate(); 

    function tryQueryAndUpdate(continuation) { 
     var query = {query: "select * from root r where r.id = @id", parameters: [{name: "@id", value: id}]}; 
     var requestOptions = {continuation: continuation}; 

     var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, documents, responseOptions) { 
      if (err) throw err; 

      if (documents.length > 0) { 
       tryUpdate(documents[0]); 
      } else { 
       throw new Error("Document not found."); 
      } 
     }); 
    } 

function tryUpdate(document) { 
    var requestOptions = {etag: document._etag}; 

    var fields, i; 

    fields = Object.keys(update); 
    for (i = 0; i < fields.length; i++) { 
     document[fields[i]] = update[fields[i]]; 
    } 

    var isAccepted = collection.replaceDocument(document._self, document, requestOptions, function (err, updatedDocument, responseOptions) { 
     if (err) throw err; 
     response.setBody(updatedDocument); 
    }); 
} 
関連する問題