Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 猫鼬日期比较_Node.js_Mongodb - Fatal编程技术网

Node.js 猫鼬日期比较

Node.js 猫鼬日期比较,node.js,mongodb,Node.js,Mongodb,我的应用程序将允许用户创建优惠券 优惠券将在日期自和日期至期间有效 问题是,每张优惠券的有效期应为选定的日期,而不是小时 例如,从周一(2016-06-12)到周二(2016-06-13),所以两天 我应该如何在服务器端存储日期,然后使用Mongoose中的$gte子句进行比较 谢谢:-)您可以将过期时间存储为UNIX时间戳。在Mongoose模型中,可以使用expiration:{type:Number,required:true} 如果您有创建优惠券的用户界面,那么您可以将日期选择器配置为以

我的应用程序将允许用户创建优惠券

优惠券将在
日期自
日期至
期间有效

问题是,每张优惠券的有效期应为选定的日期,而不是小时

例如,从周一(2016-06-12)到周二(2016-06-13),所以两天

我应该如何在服务器端存储日期,然后使用Mongoose中的
$gte
子句进行比较


谢谢:-)

您可以将过期时间存储为UNIX时间戳。在Mongoose模型中,可以使用
expiration:{type:Number,required:true}

如果您有创建优惠券的用户界面,那么您可以将日期选择器配置为以UNIX时间戳发送时间

或者,如果您得到的是日期字符串,那么您可以使用
var timestamp=new Date('Your_Date_string')

以及计算您可以使用的天数。使用它,您可以使用
.startOf()计算日期的开始日期.endOf()编码>和结束日期


Moment JS返回的时间戳可用于Mongoose查询,如
$gte:some_Timestamp
$lte:some_Timestamp

如果要
在优惠券持久化之前验证它,可以为日期字段创建
max/min
值:

{ "_id" : 1, "couponStartDate" : ISODate("2016-06-26T18:57:30.012Z") }
{ "_id" : 2, "couponStartDate" : ISODate("2016-06-26T18:57:35.012Z") }


var startDate = new Date(); // I am assuming this is gonna be provided 
var validDate = startDate;
var parametricDayCount = 2;
validDate.setDate(validDate.getDate()+parametricDayCount);
CouponModel.find({couponStartDate: {$gte: startDate, $lte: validDate}}, function (err, docs) { ... });
请参见官方提供的示例:

提示:字段名使用
snake\u case
camelCase

var s = new Schema({ dateto: { type: Date, max: Date('2014-01-01') })
var M = db.model('M', s)
var m = new M({ dateto: Date('2014-12-08') })
m.save(function (err) {
  console.error(err) // validator error
  m.dateto = Date('2013-12-31');
  m.save() // success
})