mongoDB查询操作符;
http://www.runoob.com/mongodb/mongodb-operators.html
项目中需要的场景是这样的,每个人每天只能领取一张明信片,换句话说,我要在数据中,查找一条记录,记录的条件为,首先是这个用户有没有领过,没有领过直接领取,若领过,则查询领取时间,查询已经领取时间,是否在当前时间段内。
查询有无此用户很简单,直接用ID查询。
查询已领取时间是否在当前时间段内,需要以下几个参数,
当前时间,new Date();
时间范围;
1 var now = new Date(); 2 var start = utils.moment(now).startOf('day'); 3 var end = utils.moment(now).endOf('day'); 4 PostcardRecord.findOne({user:userid,at:{$gte:start.valueOf(), $lte:end.valueOf()}},function(err,data){ 5 if(!data){ 6 res.json({success:true,userid:userid,postcard:id}); 7 }else{ 8 res.json({success:false}); 9 } 10 });
此处用到了一个库,moment.js.
通过start和end获得当天时间的开始和结尾,注意moment.js传递参数时,传递是 day 若是 hour则是当前时间内;
再有就是注意查询参数的书写格式,at{$get:start,$let:end};