2016-08-11 19 views
1

我有一个奇怪的问题,关于如何mongodb适用于我的MEAN.js应用程序。这对于MEAN应用程序来说并不是问题,而是直接针对MONGODB。在我的本地计算机(Win 8.1)和虚拟机(Ubuntu服务器14.x)上使用猫鼬的聚合函数可以正常工作,但是当我使用相同版本的Mongodb将项目上传到Google Cloud Virtual Instance(2个CPU或4个CPU),一切正常,直到聚合函数被触发。我没有从服务器显示错误,这就是为什么很奇怪... (MongoDB v3.2.8或3.2.6,都适用于本地)我尝试了3种不同的Google Cloud VI,但以相同的结果结束...mongodb聚合函数谷歌云控制台

我的查询是有关计算每一天的记录,如果找到。这里是我的查询:

{ "$match": { '$and': 
      [ { firm: ObjectId('574e81be2153f45b0c3d6811') }, 
      { created: 
       { '$gte': ISODate('Tue Jul 12 2016 15:56:04 GMT+0000 (UTC)'), 
        '$lte': ISODate('Thu Aug 11 2016 15:56:04 GMT+0000 (UTC)') } }, 
      { transactionStatus: 1 } ] } 
     }, 
     { "$group": { 
      "_id": { 
      "$add": [ 
       { "$subtract": [ 
       { "$subtract": [ "$created", new Date(0) ] }, 
       { "$mod": [ 
        { "$subtract": [ "$created", new Date(0) ] }, 
        OneDay 
       ] } 
       ] }, 
       new Date(0) 
      ] 
      }, 
      "count": { "$sum": 1 } 
     } 
    } 

我试图切换MongoDB的版本2.6或类似的东西,但还是一个没有尽头。我在这里或其他地方找不到任何相似的东西,这就是我在这里问的原因。 非常感谢。

回答

0

我不知道为什么,但如果我更改查询我执行到聚合这样的:

{ '$and': 
    [ { created: 
     { '$gte': ISODate('Tue Jul 12 2016 15:56:04 GMT+0000 (UTC)'), 
     '$lte': ISODate('Thu Aug 11 2016 15:56:04 GMT+0000 (UTC)') } }, 
    { transactionStatus: 1 }, 
    { firm: ObjectId('574e81be2153f45b0c3d6811') } 
    ] 
} 

从这:

{ '$and': 
    [ { firm: ObjectId('574e81be2153f45b0c3d6811') }, 
    { created: 
     { '$gte': ISODate('Tue Jul 12 2016 15:56:04 GMT+0000 (UTC)'), 
     '$lte': ISODate('Thu Aug 11 2016 15:56:04 GMT+0000 (UTC)') } }, 
    { transactionStatus: 1 } 
    ] 
} 

作品样样精...可有人解释这对我?无论如何,这个话题可以被关闭。