我是Mongo Node.js驅動程序的新手。我的問題是,我在Mongo中設置了一個時間戳(以毫秒爲單位),現在我嘗試按秒分組。時間戳是一個數字(Int64的),我想擁有它編組和由1000MongoDB Node.js組按計算鍵
我的MongoDB殼牌查詢與統計司工作正常:
db.default.group(
{
keyf: function(doc) {
var secs = (doc.timestamp/1000).toFixed();
return {'data':secs};
},
cond: {source:1},
initial: {count:0},
reduce: function(obj, prev) {prev.count++;}
})
我的問題是我不能去上班我Node.js查詢:
var keyf = function(doc) {
var secs = (doc.timestamp/1000).toFixed();
return {'data': secs};
};
collection.group(keyf, {}, {"count":0},
"function(obj, prev){prev.count++;}", false, function(err,results) {
console.log(results);
});
看起來好像組從未注意到keyf函數。有任何想法嗎?
您是否嘗試過使用該聚合框架?它比服務器端JavaScript方法更快。順便說一下,我認爲在聚合框架中實現按截斷數除1000的邏輯很難。你能解釋哪些要求來自哪裏?你有毫秒的時間,你想第二個文件分組? – wdberkeley 2015-02-13 16:26:22
是的,那是對的。我只想要秒,而我只有毫秒。要求是我想測量性能,並且我需要在不同的計算中以milis來計算它的精度。另一方面,我想有幾秒鐘就可以將它放入帶有數字的圖表(繪圖)中。將它聚合到服務器中,可以做數據庫的用途。另一種解決方案(我無法在網上找到)是將查詢發送到數據庫並將結果返回給服務器。在node.js中 – Tomasch 2015-02-15 17:48:25
如果您的時間戳是日期類型而不是數字,它將在聚合框架中工作。我總是建議使用時間值的日期類型。你能切換嗎? – wdberkeley 2015-02-17 17:11:01