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 文档。