【发布时间】:2012-01-13 22:33:57
【问题描述】:
我在 mongodb 中有类似的数据
{ "_id" : ObjectId("4f0ee7310b09f7a254000001"), "createdAt" : ISODate("2012-01-12T23:58:28Z") }
{ "_id" : ObjectId("4f0ee7350b09f7a254000002"), "createdAt" : ISODate("2012-01-12T23:58:28Z") }
{ "_id" : ObjectId("4f0ee855e63cecb654000001"), "createdAt" : ISODate("2012-01-13T00:03:59Z") }
{ "_id" : ObjectId("4f0ee859e63cecb654000002"), "createdAt" : ISODate("2012-01-13T00:04:08Z") }
{ "_id" : ObjectId("4f0ee97c212d70bc54000001"), "createdAt" : ISODate("2012-01-13T00:08:54Z") }
{ "_id" : ObjectId("4f0ee99f212d70bc54000002"), "createdAt" : ISODate("2012-01-13T00:09:27Z") }
我只想显示基于日期的记录。检查我的代码它什么也没给我
//dateStr = '120112' or '120113'
var year = '20' + dateStr.substring(0,2);
var month = dateStr.substring(2,4);
var day = dateStr.substring(4);
dateStr = new Date(year,month,day,0,0,0);
var nextDate = new Date(year,month,day,23,59,59);
GPSData.find({"createdAt" : { $gte : dateStr, $lte: nextDate }}, function(err, data) {
if(err)
console.log(err);
res.writeHead(200, {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
});
var body = JSON.stringify(data);
res.end(body); //no output here just []
});
但在使用此命令的 mongo shell 上,我得到日期“120112”的结果
db.gpsdatas.find({"createdAt" : {new ISODate("2012-01-12T00:00:00Z"), $lte: new ISODate("2012-01-12T23:59:59Z") }});
【问题讨论】:
-
不知道 mongoose 是如何工作的,但你可以试试 {"createdAt" : { $gte : dateStr}, "createdAt" : { $lte: nextDate }}