documentdb 错误创建请求消息
documentdb error creating request message
我正在尝试编写小的预插入触发器(为集合中的每个文档生成数字 ID),注册它并 运行 使用 DocumentDB .NET SDK。我正在使用 DocumentDB 模拟器来测试我的代码
function generateNumericId() {
var counterDocumentId = 'numericIdCounter';
var counterDocumentLink = __.getSelfLink() + 'docs/' + counterDocumentId;
__.readDocument(counterDocumentLink, {},
function(err, counterDocument) {
if (err) throw new Error("Can't find counterDocument!");
counterDocument.value += 1;
__.upsertDocument(counterDocumentLink, counterDocument);
var docToCreate = __.request.getBody();
docToCreate.id = counterDocument.value.toString();
__.request.setBody(docToCreate);
});}
我的 .net 代码成功注册了它,但是当我 运行ning 插入操作时
它因 "Error creating request message" 异常而失败。那么,请告诉我我的代码有什么问题?
(!重要:我的集合中已经有 numericIdCounter 文档,js 代码在 readDocument 函数中失败!)
第一个错误:__.getSelfLink()
=> __.getAltLink()
因为 getSelfLink()
提供了从内部 _id
字段构建的路径(这对我们来说不好 - 我们只知道计数器 id
,不是内部 _id
)。 getAltLink()
允许我们构建如下 url:dbs/mydb/colls/mycoll/docs/numericIdCounter
而不是 dbs/dLIxAA==/colls/dLIxAOFiYAA=/docs/dLIxAOFiYAABAAAAAAAAAA==/
.
第二个错误:__.upsertDocument(counterDocumentLink, counterDocument);
=> __.upsertDocument(__.getAltLink(), counterDocument);
刚检查完 api 文档。
我正在尝试编写小的预插入触发器(为集合中的每个文档生成数字 ID),注册它并 运行 使用 DocumentDB .NET SDK。我正在使用 DocumentDB 模拟器来测试我的代码
function generateNumericId() {
var counterDocumentId = 'numericIdCounter';
var counterDocumentLink = __.getSelfLink() + 'docs/' + counterDocumentId;
__.readDocument(counterDocumentLink, {},
function(err, counterDocument) {
if (err) throw new Error("Can't find counterDocument!");
counterDocument.value += 1;
__.upsertDocument(counterDocumentLink, counterDocument);
var docToCreate = __.request.getBody();
docToCreate.id = counterDocument.value.toString();
__.request.setBody(docToCreate);
});}
我的 .net 代码成功注册了它,但是当我 运行ning 插入操作时 它因 "Error creating request message" 异常而失败。那么,请告诉我我的代码有什么问题? (!重要:我的集合中已经有 numericIdCounter 文档,js 代码在 readDocument 函数中失败!)
第一个错误:__.getSelfLink()
=> __.getAltLink()
因为 getSelfLink()
提供了从内部 _id
字段构建的路径(这对我们来说不好 - 我们只知道计数器 id
,不是内部 _id
)。 getAltLink()
允许我们构建如下 url:dbs/mydb/colls/mycoll/docs/numericIdCounter
而不是 dbs/dLIxAA==/colls/dLIxAOFiYAA=/docs/dLIxAOFiYAABAAAAAAAAAA==/
.
第二个错误:__.upsertDocument(counterDocumentLink, counterDocument);
=> __.upsertDocument(__.getAltLink(), counterDocument);
刚检查完 api 文档。