关于mongodb如何为我的MEAN.js应用程序工作,我有一个奇怪的问题。对于MEAN app来说,这不是一个问题,而是直接针对MONGODB。
在我的本地计算机(Win 8.1)和VM(Ubuntu服务器14.x)上使用mongoose的聚合函数工作正常,但当我将项目与相同版本的Mongodb上传到Google云虚拟实例(2个CPU或4 CPU)一切正常,直到触发聚合功能。我没有从服务器显示错误,这就是为什么奇怪... (MongoDB v3.2.8或3.2.6,都适用于本地)我尝试了3种不同的Google Cloud VI,但结果却相同......
我的查询是关于计算每天的记录(如果找到)。这是我的疑问:
{ "$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 :(得分: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 }
]
}
一切正常......有人可以向我解释一下吗?无论如何,这个话题可以关闭。