我正在尝试定期计算帖子表中所有项目的复杂top
分数。
const {log10, max, abs, round} = Math;
const topScore = post => { // from Reddit
const {score, createdAt} = post;
const order = log10(max(abs(score), 1));
const sign = score > 0 ? 1 : (score < 0 ? -1 : 0);
const seconds = Date.now() - createdAt;
return sign * order + seconds / 45000;
};
使用上述功能,我想执行以下操作:
// Update topScore every 60 seconds.
setInterval(() =>
r.table('post').update(post => post.topScore = topScore(post)).run();
, 60000);
如何使用RethinkDB javascript驱动程序执行此操作?
答案 0 :(得分:0)
您可以编写r.table('post').update(r.js('(function(post) { ... })'), {nonAtomic: true})
,其中...
是任意JS代码。否则,您必须将该代码转换为ReQL或将文档下载到客户端,更新它们,然后将它们写回服务器。