Mongodb Date()返回了错误的值

Mongodb Date()返回了错误的值,mongodb,date,Mongodb,Date,在mongodb shell中,我遇到了日期查询的问题。这是一个测试数据库,通过示例可以更好地解释该问题: 集合中的示例字段 "createdOn" : ISODate("2015-11-23T00:49:01.800Z") 当我输入本月在壳牌公司进行测试的日期时,例如: new Date(2015, 11, 23) ISODate("2015-12-23T05:00:00Z") 你可以看到这是一个月一头,这意味着它扰乱了我的查询。为了得到本月所需的东西,我必须在一个月后返回: db.col

在mongodb shell中,我遇到了日期查询的问题。这是一个测试数据库,通过示例可以更好地解释该问题:

集合中的示例字段

"createdOn" : ISODate("2015-11-23T00:49:01.800Z")
当我输入本月在壳牌公司进行测试的日期时,例如:

new Date(2015, 11, 23)
ISODate("2015-12-23T05:00:00Z")
你可以看到这是一个月一头,这意味着它扰乱了我的查询。为了得到本月所需的东西,我必须在一个月后返回:

db.collection.find({'createdOn': {'$lte': new Date(2015, 10, 23)}}).count()
306
db.collection.find({'createdOn': {'$gte': new Date(2015, 10, 23)}}).count()
10
以上所有条目均在11月创建,但使用正确的月份时:

db.collection.find({'createdOn': {'$gte': new Date(2015, 11, 23)}}).count()
0

这是怎么发生的?

你应该像这样使用
日期:
新日期(“2015-11-23”)
。请参见您应该像这样使用
日期:
新日期(“2015-11-23”)
。请参见

您所做的几乎是正确的,但您忽略了一点:

Javascript从0到11(而不是1到12)计算月份数

一月是零。十二月十一号。因此,要查看11月份创建的条目,您必须应用如下查询:

db.collection.find({'createdOn':{'gte':新日期(2015,10,23)})


你所做的几乎是对的,但你错过了一点:

Javascript从0到11(而不是1到12)计算月份数

一月是零。十二月十一号。因此,要查看11月份创建的条目,您必须应用如下查询:

db.collection.find({'createdOn':{'gte':新日期(2015,10,23)})