简单的DocumentDb存储过程

时间:2014-10-31 00:37:44

标签: azure-cosmosdb

我试图创建一个简单的DocumentDb存储过程来更好地理解它的概念。在这个例子中,我试图返回一个所有"女性"用户。我是否需要关注返回单个匹配文档或多个文档?

这是我的用户对象的样子:

{
   "id": "e85ee3d7-44a5-4250-a116-686e1c2a10f5"
   "firstName": "Jane",
   "lastName": "Doe",
   "gender": "F"
}

这就是到目前为止我的storedproc的样子:

function(gender) { 

   var context = getContext();
   var response = context.getResponse();
   var collection = context.getCollection();
   var collectionLink = collection.getSelfLink();

   var filterQuery = "SELECT * FROM c WHERE c.gender = '" + gender + "'";
   // Now what???
}

我想退回所有女性用户。可能有一个或10,000个女性用户。

感谢您对这个简单的DocumentDb存储过程的帮助。感谢。

1 个答案:

答案 0 :(得分:6)

你走在正确的轨道上。

接下来的步骤是在集合上运行filterQuery,然后将查询响应放入响应变量中。

例如:

function(gender) {
  var context = getContext();
  var response = context.getResponse();
  var collection = context.getCollection();
  var collectionLink = collection.getSelfLink();

  var filterQuery = 'SELECT * FROM c WHERE c.gender = "' + gender + '"';

  collection.queryDocuments(collectionLink, filterQuery, {},
    function(err, documents) {
      response.setBody(response.getBody() + JSON.stringify(documents));
    }
  );
}

您可以在DocumentDB的网站上找到更多关于存储过程的示例和文档:http://azure.microsoft.com/en-us/documentation/articles/documentdb-programming/