我们的Cosmos演示数据库中有以下集合
- 富
- 酒吧
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/