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