我在Azure Mobile Services(javascript后端)中有两个表:TableA和TableB。我想在每次在表A中运行读取查询时更新表B中的特定行。这两个表具有相同的列"日期",用于标识要更新的行。
我正在尝试通过以下代码(添加到 TableA 中的读取脚本)来实现这一点,该代码无法更新 TableB(如果我将 var myTable 中的表名称更改为 TableA,它可以更新 TableA)
function read(query, user, request) {
request.execute({ success: function(results)
{
request.respond();
//retrieve TableB reference
var myTable = tables.getTable('TableB');
myTable.where({
//retrieve TableB specific row by date
Date: results[0].Date
}).read({
success: function(results){
//reference row to be updated in TableB
var tableRef = results[0];
tableRef.Views = tableRef.Views + 1;
//update row in TableB
myTable.update(tableRef);
}});}});}
请问,我该如何解决它?
更新,以下代码有效:
function read(query, user, request) {
request.execute( { success: function(results) {
request.respond();
var countTable = tables.getTable('TableB');
countTable.where({date: results[0].Date}).read({
success: updateCount
});
function updateCount(results) {
if (results.length > 0) {
// tracking record was found. update and continue normal execution.
var trackingRecord = results[0];
trackingRecord.views = trackingRecord.views + 1;
countTable.update(trackingRecord);
} else {
console.log('error updating count');
}
}
}
});};