Javascript 无法检索Cosmos DB存储过程中的文档

Javascript 无法检索Cosmos DB存储过程中的文档,javascript,stored-procedures,azure-cosmosdb,Javascript,Stored Procedures,Azure Cosmosdb,我试图通过JavaScript存储过程中的一个简单SQL查询来检索与id匹配的文档。但它总是返回没有与找到的id匹配的文档。尝试了Microsoft文档和其他StackOverflow答案中提供的所有内容。以下是我的功能: 函数更新文档(){ 让context=getContext(); let collection=context.getCollection(); 让collectionLink=collection.getSelfLink(); 让response=context.getRe

我试图通过JavaScript存储过程中的一个简单SQL查询来检索与id匹配的文档。但它总是返回没有与找到的id匹配的文档。尝试了Microsoft文档和其他StackOverflow答案中提供的所有内容。以下是我的功能:

函数更新文档(){
让context=getContext();
let collection=context.getCollection();
让collectionLink=collection.getSelfLink();
让response=context.getResponse();
tryQueryAndUpdate();
函数tryQueryAndUpdate(){
var filterQuery='从用户r中选择*,其中r.id=“f5eddf33-7826-40c3-a634-9c349e5c7f73”;
let isAccepted=collection.queryDocuments(collectionLink,filterQuery,{},函数(err,documents,responseOptions){
如果(错误)抛出错误;
如果(documents.length>0){
log(“文档存在-”+文档.长度);
}否则{
//否则,具有给定id的文档不存在。。
log(“文档不存在”+documents.length);
}
});
}
}
我的文件:

{
“名字”:“名字”,
“lastName”:“lastName”,
“电子邮件”:“名字”。lastname@gmail.com",
“业务角色”:“,
“functionalArea”:空,
“类型”:“内部”,
“状态”:“启用”,
“修改日期”:“2020-07-10T14:34:54.557Z”,
“id”:“f5eddf33-7826-40c3-a634-9c349e5c7f73”,
“_rid”:“H+pkakzdgd0baaaaaaa=”,
“_self”:“dbs/H+pKAA==/colls/H+pKAKZdGd0=/docs/H+pkakzdd0baaaaaaa==/”,
“\u etag”:“730103dd-0000-0100-0000-5f6302800000\”,
“_附件”:“附件/”,
“证券集团”:“c5d3dc10-bfa0-11ea-8394-48463089baf6”,
“约定ID”:“945acacf-a3ea-43ef-8e31-70576055ba4f”,
“排序”:{
“名字”:“名字”,
“lastName”:“lastName”
},
“用户状态”:“活动”,
“_ts”:160034224
}

任何帮助都将不胜感激。多谢各位

执行参数:

控制台输出:


正如David在文章中提到的,分区键中的值错误


您需要使用分区键的值,而不是屏幕截图中的
/type

,您的分区键为
/type
。在对存储过程的调用中,是否为
type
设置了值?请编辑您的问题以显示如何调用存储过程。Hi@DavidMakogon,是的,/type包含在内。我已附上屏幕截图。您的分区键中有错误的值。您输入了密钥(
“/type”
)。您需要输入正在搜索的值。Cosmos DB已经知道
/type
是用于分区键的字段。因此,在您的示例中,输入
“internal”
作为分区键值。我完全弄错了。感谢您的帮助,我已经提供了一个正式的答案。在一些类似的问题中,人们遇到了相同的问题(只是在不同的情况下)。你可以读到两个这样的答案,然后。