在Find中使用Mongo JavaScript中的变量

时间:2016-01-08 15:10:12

标签: javascript mongodb

我想在js脚本中使用如下变量来检索在特定日期处理的行。 我尝试定义" obj_start_date"和" obj_end_date"但是我无法在请求中使用该值....

我已经尝试在论坛中找到一种方法,但对我来说没有任何作用...如果你能帮助我,请提前感谢:)

var result = 0;

var obj_start_date = {};
var start_date = "2016-01-04 00:00:00";
obj_start_date[start_date]=1;

var obj_end_date = {};
var end_date  = "2016-01-04 23:59:59";
obj_end_date[end_date]=1;

var linkNames = db.lines.find({$and:[{'type':{$in:['mobile','voip']}},{'process_time':{$gte:obj_start_date}},{'process_time':{$lte:obj_end_date}}]}).map(function(doc){
  result = result + parseFloat(doc.duration);
});

print( result+ "\r\n");

1 个答案:

答案 0 :(得分:2)

如果字段public_profile是mongo日期,您可以简单地构造要在查询中使用的正确日期对象:

process_time

或使用 aggregation framework

var result = 0,
    start_date = new Date("2016-01-04 00:00:00"),
    end_date = new Date("2016-01-04 23:59:59");

db.lines.find({
    "type": {
        "$in": ['mobile','voip']
    },
    "process_time": {
        "$gte": start_date,
        "$lte": end_date
    }
}).forEach(function(doc){
    result = result + parseFloat(doc.duration);
});

print( result+ "\r\n" );