使用Match和Group在Mongoose中聚合不起作用

时间:2015-07-01 21:28:06

标签: angularjs node.js mongodb mongoose

我正在使用AngularJS,NodeJS和Mongoose编写应用程序。 现在,我正在做一个图表,我需要返回一些传递一些参数的数据。 但聚合不起作用。我在MongoDB中使用此查询:

var user = db.getCollection('users').find(
{profile: "SUPERVISOR"},{_id: 1}).map(function(u){return u._id;}
)

db.getCollection("visitas").aggregate(
    { '$match':
     { createdAt:
       { '$gte': ISODate('2015-01-10T00:00:00.000Z'),
         '$lt': ISODate('2015-07-01T00:00:00.000Z') } } }, { '$group':
     { _id: { usuario: user, dia: [Object] },
      visitas: { '$sum': 1 } } }
)

var user = db.getCollection('users').find( {profile: "SUPERVISOR"},{_id: 1}).map(function(u){return u._id;} ) db.getCollection("visitas").aggregate( { '$match': { createdAt: { '$gte': ISODate('2015-01-10T00:00:00.000Z'), '$lt': ISODate('2015-07-01T00:00:00.000Z') } } }, { '$group': { _id: { usuario: user, dia: [Object] }, visitas: { '$sum': 1 } } } )

当我尝试使用Mongoose在我的应用程序中运行相同的查询时,查询不起作用。我看到的问题是MATCH和GROUP之间的逗号正在消失。当我尝试仅使用组或匹配进行搜索时,查询可以正常工作。有人可以帮帮我吗?这是应用程序代码:

1 个答案:

答案 0 :(得分:0)

解决!!!

我的团队成员发现错误! \ O / 也许这可以帮助那些会遇到同样问题的人。

要解决此问题,您只需将字符串中的日期转换为日期类型。

解决的代码如下:

ttl

我希望这可以帮助别人。