javascript - CosmosDB 保存/更新触发器以增加计数

标签 javascript json azure ecmascript-6 azure-cosmosdb

我们的Cosmos演示数据库中有以下集合

  1. 酒吧

foo 接受提交的 json。

每次提交到 foo.json

{
"ratingsubmission392": {
    "rating": 5,
    "SubmissionDate": "2018-01-09T09:25:43.511Z",
    "status": "submitted",
    "id": "TestDaily1"
}}

我们希望将计数增加 1

submissionCount++

是否可以在 Cosmos DB 中仅使用触发器和 Javascript 代码来完成此操作,而无需 Function app或定期读取 foo 的Cron Job

如果是,怎么做?

最佳答案

这里使用Cosmos DB触发器无法达到您的要求,因为触发器不允许操作当前集合之外的资源。

但是您可以使用 Azure Cosmos DB Node.js SDK for SQL API 自己轻松实现它。

类似这样的事情:

var ratingsubmission392 = { 
    "rating": 5,
    "SubmissionDate": "2018-01-09T09:25:43.511Z",
    "status": "submitted",
    "id": "TestDaily7"
};

var collLink = "dbs/mydb/colls/foo";

client.createDocument(collLink, ratingsubmission392, (err, doc) => {
    if(err) return console.log(err);
    console.log('Created Document with id: ', doc.id);
    updateBar();
});

function updateBar() {

    var docLink = "dbs/mydb/colls/bar/docs/viz";
    client.readDocument(docLink, (err, doc) => {
        if(err) return console.log(err);

        doc.submissionCount = doc.submissionCount++;

        client.replaceDocument(docLink, doc, (err, result) => {
            if(err) return console.log(err);
            console.log('replaced document');
        });
    });
}

关于javascript - CosmosDB 保存/更新触发器以增加计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48353676/

相关文章:

azure - 将数据从 Databricks 加载到 Azure Analysis Services (AAS)

javascript - 单击屏幕上其他任何位置时菜单未关闭

javascript - AngularJS - $anchorScroll 平滑/持续时间

javascript - 在样式之间来回切换 onClick() - Switch Case

json - 使用 Spark 解析 JSON 文件并提取键和值

sql - 交叉应用于 SQL Server 上的列。附近有语法错误)

javascript - for 循环中的 setTimeout 不起作用

json - Windows 上的 Meteor 设置

java - 使用 JSON 文件解析信息中的 url 来显示 URL 中的图像

sql - 插入具有特定关键字的行时向用户发送通知