我们的CosmosDemoDB中包含以下集合



酒吧


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');
        });
    });
}

07-24 09:38
查看更多