Azure cosmosdb 简单DocumentDb存储过程
我试图创建一个简单的DocumentDb存储过程,以便更好地理解其概念。在本例中,我试图返回一个所有“女性”用户的列表。我是否需要考虑返回单个匹配文档或多个文档 以下是我的用户对象的外观:Azure cosmosdb 简单DocumentDb存储过程,azure-cosmosdb,Azure Cosmosdb,我试图创建一个简单的DocumentDb存储过程,以便更好地理解其概念。在本例中,我试图返回一个所有“女性”用户的列表。我是否需要考虑返回单个匹配文档或多个文档 以下是我的用户对象的外观: { "id": "e85ee3d7-44a5-4250-a116-686e1c2a10f5" "firstName": "Jane", "lastName": "Doe", "gender": "F" } 以下是迄今为止我的storedproc的外观: function(gender
{
"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???
}
我想返回所有女性用户。可能有一个或10000个女性用户
非常感谢您对这个简单的DocumentDb存储过程的帮助。谢谢。你说得对 接下来的步骤是对集合运行filterQuery,然后将查询响应放入response变量中 例如:
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的网站上找到更多关于存储过程的示例和文档:您希望了解continuation并计算continuationToken——您的示例可能会返回部分结果集。以下是指向MSDN示例解决方案的链接,其中包含过程和触发器JS代码:@Toons33,与感谢MSDN示例相同。我以前看过这个示例页面,但因为标题是“Azure DocumentDB.NET Code Samples”,而我不是在.NET中写作,所以我将其删除。这次我终于注意到了“DocumentDB.Samples.ServerSideScripts”部分,包括一个很好地说明了继续的示例。现在可以在GitHub上的Azure代码示例库中找到。此示例代码已经移动了好几次,因此如果链接出现问题,请在GitHub中搜索
org:Azure
和术语存储过程continuationtoken
。也许有一天我(或其他人)会把一个例子编辑成答案。