Javascript 在mongodb中查询日期

Javascript 在mongodb中查询日期,javascript,mongodb,date,Javascript,Mongodb,Date,我正在尝试按日期范围查询我的收藏。我试图在传递javascript日期的查询中使用ISODate,但它不起作用,我不知道为什么 我试过: db.collection.aggregate {date: {$gt: 'new Date(' + start.toISOString() + ')', $lt: 'new Date(' + end.toISOString() + ')'}}, {"$group": {_id: "$user", count: {$sum: 1}}} db.collecti

我正在尝试按日期范围查询我的收藏。我试图在传递javascript日期的查询中使用ISODate,但它不起作用,我不知道为什么

我试过:

db.collection.aggregate {date: {$gt: 'new Date(' + start.toISOString() + ')', $lt: 'new Date(' + end.toISOString() + ')'}}, {"$group": {_id: "$user", count: {$sum: 1}}}

db.collection.aggregate {date: {$gt: 'ISODate(' + start.toISOString() + ')', $lt: 'ISODate(' + end.toISOString() + ')'}}, {"$group": {_id: "$user", count: {$sum: 1}}}

db.collection.aggregate {date: {$gt: 'ISODate(' + start + ')', $lt: 'ISODate(' + end + ')'}}, {"$group": {_id: "$user", count: {$sum: 1}}}

db.collection.aggregate {date: {$gt:start, $lt: end}}, {"$group": {_id: "$user", count: {$sum: 1}}}
什么都不管用


你能帮我吗?或者解释一下为什么它在每种情况下都不起作用?

为什么要将
日期
构造函数作为字符串,并将其与
开始
结束
值连接起来?将
Date
对象与
“新日期(2014-10-20T15:27:24.110Z)”之类的字符串进行比较是行不通的

如果
start
end
是普通的JavaScript
Date
对象,则可以使用
ISODate
帮助程序构造
ISODate
对象进行比较,如下所示:

db.collection.aggregate([
    {$match: {date: {
        $gt: ISODate(start.toISOString()),
        $lt: ISODate(end.toISOString())
    }}},
    {$group: {_id: "$user", count: {$sum: 1}}}
])

开始日期和结束日期可能重复。我明天试试,谢谢