Node.js 无法获得MongoDB Cookbook“;查询日期范围";与猫鼬合作

Node.js 无法获得MongoDB Cookbook“;查询日期范围";与猫鼬合作,node.js,datetime,mongoose,Node.js,Datetime,Mongoose,我一直在尝试在应用程序中使用日期范围获取node.js/mongoose查询,但没有成功。因此,我采用了[Mongo DB cookbook for date range的代码]:并将其放入一个简单的node.js应用程序中,看看我是否可以让它工作(但没有成功) 代码如下: var mongoose = require('mongoose'); mongoose.connect('mongodb://127.0.0.1/tb'); var PostSchema = new mongoose.

我一直在尝试在应用程序中使用日期范围获取node.js/mongoose查询,但没有成功。因此,我采用了[Mongo DB cookbook for date range的代码]:并将其放入一个简单的node.js应用程序中,看看我是否可以让它工作(但没有成功)

代码如下:

var mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1/tb');

var PostSchema = new mongoose.Schema(
  title: String,
  author: String,
  content: String,
  created_on: Date
});

Post = mongoose.model('Post', PostSchema);

var newPost = new Post({
    "title" : "A blog post",
    "author" : "Mike",
    "content" : "...",
    "created_on" : new Date()
});

Post.remove({},
  function(err) {
    console.log("cleared out Posts...");
    newPost.save( function (err, record) {
       console.log("record saved: " + record);
       var start = new Date(2013, 7, 1);
       var end = new Date(2013, 8, 1);

       Post.find({ },
         function( err, result_set1) {
           console.log("result without date query: " + JSON.stringify(result_set1));
           Post.find({created_on: { $gte: start, $lt: end }},
             function( err, result_set2) {
               console.log("result with date query: " + JSON.stringify(result_set2));
               });
           });
        });
    });
下面是结果。当我没有通过日期过滤器时,我会得到结果,但当我放入日期过滤器时,我不会得到结果。我真的很感激你帮我弄明白这件事

cleared out Posts...
record saved: { __v: 0,
  title: 'A blog post',
  author: 'Mike',
  content: '...',
  created_on: Fri Jul 26 2013 23:07:59 GMT+0000 (UTC),
  _id: 51f3014f02fee3c438000001 }
result without date query: [{"title":"A blog post","author":"Mike","content":"...","created_on":"2013-07-26T23:07:59.136Z","_id":"51f3014f02fee3c438000001","__v":0}]
result with date query: []

对此,您可能会觉得很傻,但是在构建一个
Date
对象时,month参数是以零为基础的

new Date(2013, 7, 1)
Thu Aug 01 2013 00:00:00 GMT-0600 (MDT)

你的月份减少了一个(太高了)。把你的愤怒发泄在Brendan Eich身上。

你会觉得这很愚蠢,但是当你在那里构建一个
日期
对象时,月参数是以零为基础的

new Date(2013, 7, 1)
Thu Aug 01 2013 00:00:00 GMT-0600 (MDT)

你的月份减少了一个(太高了)。把你的愤怒发泄在布伦丹·艾奇身上。

太好了!我想可能很简单。尽管如此,你还是为我节省了很多时间。非常感谢!美好的我想可能很简单。尽管如此,你还是为我节省了很多时间。非常感谢!