如何使用查询更新 Documentdb 中的文档?

2024-06-17

如何使用查询更新文档数据库中的文档(基本上想使用存储过程更新文档)?


以下示例可能正是您所需要的:https://github.com/aliuy/documentdb-serverside-js/blob/master/stored-procedures/update.js https://github.com/aliuy/documentdb-serverside-js/blob/master/stored-procedures/update.js.

这是一个简化版本:

function updateSproc(id, update) {
    var collection = getContext().getCollection();
    var collectionLink = collection.getSelfLink();
    var response = getContext().getResponse();

    tryQueryAndUpdate();

    function tryQueryAndUpdate(continuation) {
        var query = {query: "select * from root r where r.id = @id", parameters: [{name: "@id", value: id}]};
        var requestOptions = {continuation: continuation};

        var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, documents, responseOptions) {
            if (err) throw err;

            if (documents.length > 0) {
                tryUpdate(documents[0]);
            } else {
                throw new Error("Document not found.");
            }
        });
    }

function tryUpdate(document) {
    var requestOptions = {etag: document._etag};

    var fields, i;

    fields = Object.keys(update);
    for (i = 0; i < fields.length; i++) {
       document[fields[i]] = update[fields[i]];
    }

    var isAccepted = collection.replaceDocument(document._self, document, requestOptions, function (err, updatedDocument, responseOptions) {
        if (err) throw err;
        response.setBody(updatedDocument);
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用查询更新 Documentdb 中的文档? 的相关文章

  • Azure Cosmo DB 是否对 45MB 数据库多收费?

    我们使用的 Cosmos DB 是 MongoDB 我们的数据库大小只有 45 MB 所有集合中的文档少于 10 000 个 我们每天运行少量查询和写入 每天少于 3000 个请求 而且我们每晚运行 MongoDB Dump 将整个数据库转
  • CosmosDB 中的索引数组

    为什么 CosmosDB 默认情况下不索引数组 默认索引路径是 path 这不是意味着 索引一切 吗 不是 索引除数组之外的所有内容 如果我将数组字段添加到索引中 如下所示 path tags 它将工作并开始索引该特定数组字段 但我的问题是
  • Azure DocumentDB 多租户架构

    我一直在预览期间将 DocumentDB 实现到多租户系统中 我的计划是在 DocumentDB 帐户下为每个注册的租户生成一个新数据库 大部分代码已经就位 并且测试进展非常顺利 由于 DocumentDB 已正式发布并且文档已最终确定 我
  • 使用 MongoDB API 连接到 CosmosDB 时出现超时错误

    我目前正在通过以下教程学习如何通过 mongodb API 使用 Azure cosmos db https learn microsoft com en us azure cosmos db tutorial develop mongod
  • 对 Azure Cosmos DB 中的嵌套字段建立索引

    我想在 Azure Cosmos DB 文档中的嵌套字段上创建索引 例如 如果我有以下架构 id 1 nested mode mode1 text nice text 我想在该字段上创建索引nested mode 如何才能做到这一点 Ans
  • 如何在 Azure Cosmos DB (BotFramework) 中存储 UserState 和 ConversationState?

    我正在使用 Microsoft Bot Framework V4 版本制作一个机器人 该文档真的很糟糕 当我尝试存储 de UserSate 和 ConversationState 时 我遇到了 Cosmos DB Azure 问题 我尝试
  • CosmosDB 存储过程 - Promise 而不是回调

    是否可以在 CosmosDB DocumentDB 存储过程 API 调用中使用 JavaScript Promise 而不是常规回调 一种用法是实现分页 例如 token getToken doSomething token functi
  • 嵌套文档上的 Azure DocumentDB ARRAY_CONTAINS

    似乎是ARRAY CONTAINS嵌套文档上的函数永远不会匹配任何文档 例如 尝试使用 Azure DocumentDB 进行以下简单查询查询游乐场 https www documentdb com sql demo Sandbox SEL
  • Azure 数据工厂:查询 CosmosDB 源中的 _ts(纪元)字段

    我正在尝试将数据从 Azure CosmosDB 复制到 Azure SQL 数据库 在 Azure CosmosDB 源中 查询如下 select from c where c DefinitionTime gt formatDateTi
  • LinkedAuthorizationFailed 在 PowerShell 中意味着什么?

    我正在尝试使用 PowerShell 在 cosmos db 中添加虚拟网络规则 VNETS 存在于不同的租户中 我对存储帐户做了同样的事情 效果很好 我收到以下错误 有人可以给我一些关于我哪里出错的指示吗 是否可以在 Cosmos 数据库
  • 使用托管身份将 Function App 连接到 CosmosDB

    我正在尝试在函数应用程序中编写一个函数来操作 CosmosDB 中的数据 如果我将读写键放入环境变量中 我就能正常工作 为了使其更加强大 我希望它能够作为托管身份应用程序运行 该应用程序在 Cosmos DB 上具有 DocumentDB
  • Cosmos DB 中的向后分页

    我正在尝试在我的 Vue 前端上使用 c 和 cosmos 实现一个简单的分页系统 但我不确定当用户想要返回时实现分页的最佳方法 为了前进 我使用延续令牌 所以 Cosmos 知道我已经到了哪里 但我不太确定向后工作的最佳方法 或者如果用户
  • 处理 DocumentDB 中每秒请求单位 (RU/s) 的峰值

    使用 DocumentDB 最困难的事情之一是计算出每天以及在使用高峰期间运行应用程序所需的每秒请求单位数 RU s 当你犯这个错误时 DocumentDB客户端将抛出异常 这是一个糟糕的使用模型 如果我的应用程序在一天中的特定时间会使用更
  • 在 CosmosDb 中使用 /id 作为分区键的含义

    在每分钟有 1000 个条目 唯一键 进入 cosmos 的场景中 使用 id 作为分区键安全吗 特别是 有一个逻辑分区的概念https learn microsoft com en us azure cosmos db partition
  • 获取“命令中的查询必须针对单个分片”

    我有一个使用 Mongo API 的 CosmosDB 设置 我有一个集合 在文档的一个字段上有一个散列分片 当我运行类似命令时db collection remove or db collection deleteMany我收到以下错误
  • 带有 CosmosDBTrigger 的 Azure 函数似乎不是由 upsert 触发的

    我是第一次使用 Azure Functions 我正在尝试编写一个简单的函数来响应更改或添加到 CosmosDb 集合中的文档 我写的函数如下所示 FunctionName ChangeLog public static void Run
  • Azure DocumentDB 所有者资源不存在

    我有同样的错误 icrosoft Azure Documents DocumentClientException Message Errors Owner resource does not exit 这是我的情况 当我将 web 应用程序
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • DocumentDb GUID 索引精度

    假设我们的文档中有一个非唯一的 GUID UUID 值 id 123456 Key 117dfd49 a71d 413b a9b1 841e88db06e8 Name Kaapstad 我们只想通过平等来查询这一点 不需要范围或 order
  • Cosmos DB 中的 MaxItemCount 源选项属性不起作用

    我正在尝试编写一个运行 SQL 查询的简单存储过程 并且我想通过使用 MaxItemCount 属性来限制结果 查询生成 3 个文档 但我只想返回 1 个文档 我使用 MaxItemCount 属性强制执行此限制 但这似乎不起作用 func

随机推荐