Javascript 用reddit排序算法对mongodb进行排序
下面是一个js代码,用于根据Reddit的排名算法对项目进行排名 我的问题是:如何使用此代码对mongodb文档进行排名 ()Javascript 用reddit排序算法对mongodb进行排序,javascript,mongodb,mapreduce,Javascript,Mongodb,Mapreduce,下面是一个js代码,用于根据Reddit的排名算法对项目进行排名 我的问题是:如何使用此代码对mongodb文档进行排名 () 功能热(上升、下降、日期){ 风险值得分=上升-下降; 变量顺序=log10(数学最大值(数学绝对值(分数),1)); var sign=score>0?1:score您可以使用mapReduce: var mapper=function(){ 功能热(上升、下降、日期){ 风险值得分=上升-下降; 变量顺序=log10(数学最大值(数学绝对值(分数),1)); 变量符
功能热(上升、下降、日期){
风险值得分=上升-下降;
变量顺序=log10(数学最大值(数学绝对值(分数),1));
var sign=score>0?1:score您可以使用mapReduce:
var mapper=function(){
功能热(上升、下降、日期){
风险值得分=上升-下降;
变量顺序=log10(数学最大值(数学绝对值(分数),1));
变量符号=分数>0?1:分数您的函数有问题:
new Date(1970, 1, 1) // Sun Feb 01 1970 00:00:00 GMT-0300 (BRT)
是的,第一个月是二月,它也使用系统时区。
JavaScript中的新纪元是
var epoch = new Date(Date.UTC(1970, 0, 1))
自
功能
function epochSeconds(d){
return (d.getTime() - new Date(1970,1,1).getTime())/1000;
}
应该是公正的
function epochSeconds(d){
return d.getTime()/1000;
}
压缩一点,这将返回与中的python函数完全相同的结果
功能热(上升、下降、日期){
风险值得分=上升-下降;
var order=Math.log(Math.max(Math.abs(score),1))/Math.LN10;
变量符号=得分>0?1:得分<0?-1:0;
var seconds=(date.getTime()/1000)-1134028003;
var乘积=订单+符号*秒/45000;
返回数学整数(乘积*10000000)/10000000;
}
什么是“内联”?您能包括减速机功能吗?是的,谢谢您发布代码!
epoch.getTime() // 0
function epochSeconds(d){
return (d.getTime() - new Date(1970,1,1).getTime())/1000;
}
function epochSeconds(d){
return d.getTime()/1000;
}
function hot (ups, downs, date){
var score = ups - downs;
var order = Math.log(Math.max(Math.abs(score), 1)) / Math.LN10;
var sign = score > 0 ? 1 : score < 0 ? -1 : 0;
var seconds = (date.getTime()/1000) - 1134028003;
var product = order + sign * seconds / 45000;
return Math.round(product*10000000)/10000000;
}