gpt4 book ai didi

javascript - MongoDB Node.js 按计算键分组

转载 作者:可可西里 更新时间:2023-11-01 09:55:38 24 4
gpt4 key购买 nike

我是 Mongo Node.js 驱动程序的新手。我的问题是,我在 Mongo 中设置了一个时间戳(以毫秒为单位)字段,现在我尝试按秒对它进行分组。时间戳是一个数字(Int64),我想将它分组并除以 1000 进行计数。

我的 MongoDB Shell 查询工作正常:

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);
});

看起来 group 好像从来没有注意到 keyf 函数。有什么想法吗?

最佳答案

collection 没有.group 方法,或者你必须使用模型

Model.find({}, function(err, docs) { 
if(err) console.error(err);
if(!docs) console.log("No docs found!");

function updater(docs){
// Get first item of documents
doc = docs.unshift();

// Change
doc.timestamp = (doc.timestamp/1000).toFixed();

// Update
doc.save(function(err){
if(err)
console.log(err);
else
updater(docs);
});
}
// Update documents in async
updater(docs);
});

关于javascript - MongoDB Node.js 按计算键分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28442880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com