我正在尝试在 Azure 层中实现我的业务逻辑,但我只是没有掌握 Insert 上的这种 node.js 样式的脚本。
我有适用于此的 T-SQL
declare @latitude decimal(23,20)
declare @longitude decimal(23,20)
declare @timeStamp datetime
set @latitude = 37.7858340000000012537
set @longitude = -122.4064170000000046911
set @timeStamp = '2012-12-25 02:58:23'
select longitude, latitude, userid
from blah.actions ba
where
(
datediff(second, ba.TimeStamp, @timeStamp) < 5 and
(ba.longitude - 0.0001 <= @longitude and ba.longitude + 0.0001 >= @longitude) and
(ba.latitude - 0.0001 <= latitude and ba.latitude + 0.0001 >= latitude)
)
问题是,如何使用函数来过滤插入时 Azure 脚本中的表查询?
所以多做一点工作。我想出了如何使用函数进行过滤(但我仍在努力调试 Azure 脚本)。我的插入中有以下内容。我让它“工作”,事实上我不再收到“内部服务器错误”,但我不知道如何记录结果或查看它们(非常感谢有关此 Azure 内容的任何提示)。我开始意识到我还需要在这个应用程序上做多少工作。
function dateDiff(date1, date2)
{
return date1.getTime() - date2.getTime() / 1000;
}
function insert(item, user, request) {
request.execute();
var actionsTable = tables.getTable('BlahActions');
actionsTable.where(function(currentLat, currentLon, currentTime)
{
return (this.Latitude - 0.0001 <= currentLat && this.Latitude + 0.0001 >= currentLat) &&
(this.Longitude - 0.0001 <= currentLon && this.Longitude + 0.0001 >= currentLon) &&
(this.TimeStamp == currentTime);
//(dateDiff(this.TimeStamp, currentTime) <= 5);
}, item.Latitude, item.Longitude, item.TimeStamp)
.read(
{
success:function(results)
{
}
});
}
使用 getTime() 时,上述脚本的问题是 Azure 呕吐。我需要抓取所有接近相同纬度和经度并且在过去 X 秒内发生的条目(是的,本质上是重新发明“凹凸”)。这是我目前卡住的地方。当/如果我通过这部分时,我会更新。