我尝试按GET
中的日期范围动态参数过滤查询 TextView view = LayoutInflater.from(mContext).inflate(R.layout.progress_item, viewGroup, false);
例如,我的选项看起来像
var date_from = req.query['date_from'];
var date_to = req.query['date_to'];
var options = {};
if(date_from){
if(!options["sentDateTime"]) options["sentDateTime"] = [];
var dateFrom = moment(new Date(date_from)).toDate();
options["sentDateTime"]['$qte'] = dateFrom;
}
if(date_to){
if(!options["sentDateTime"]) options["sentDateTime"] = [];
var dateTo = moment(new Date(date_to)).toDate();
options["sentDateTime"]['$lte'] = dateTo;
}
其余代码
{ sentDateTime: { '$qte': Tue Mar 01 2016 00:00:00 GMT+0000 (GMT) } }
但它返回零文件。
编辑:
更改后,我的对象看起来像这样
db.client.collection('mails_ed').find(options).limit(parseInt(req.query['limit'])).toArray(function(err, docs) {
// ...
})
正如您所看到的那样,选项包含在数组' []'我该如何解决?
答案 0 :(得分:1)
您需要使用花括号而不是方括号来创建对象文字。另外,我认为你的意思是$gte
而不是$qte
?
var date_from = req.query['date_from'];
var date_to = req.query['date_to'];
var options = {};
if(date_from){
if(!options["sentDateTime"]) options["sentDateTime"] = {};
var dateFrom = moment(new Date(date_from)).toDate();
options["sentDateTime"]['$gte'] = dateFrom;
}
if(date_to){
if(!options["sentDateTime"]) options["sentDateTime"] = {};
var dateTo = moment(new Date(date_to)).toDate();
options["sentDateTime"]['$lte'] = dateTo;
}