- 主题:求问个node.js写法
遍历mongodb某张数据库表(比如一亿数据),挨个访问记录,并作计算。 记录数每到
100的时候,将计算结果插入到redis。
这里有个问题:插入成功,再进行游标访问记录。 程序不好控制? Promise如何写?
如果不管三七二十一插入,redis操作会不会堵死?
谢谢。
var data_array = [];
dataCollection.find({'date' : {'$gt': starttime}}).forEach(function(doc) {
// 逐个获取collection记录的值
data_array.push(doc['somefield']);
if (data_array.length > 100) {
// 讲数组插入到redis
insert_to_redis(data_array);
data_array = [];
}
});
if (data_array.length > 0) {
insert_to_redis(data_array);
}
--
FROM 107.178.194.*
用python搞,我完全看不到难点。。
但是你用nodejs我就不知道了。。。
【 在 saynothing (止语) 的大作中提到: 】
: 遍历mongodb某张数据库表(比如一亿数据),挨个访问记录,并作计算。 记录数每到
: 100的时候,将计算结果插入到redis。
: 这里有个问题:插入成功,再进行游标访问记录。 程序不好控制? Promise如何写?
: ...................
--
FROM 111.85.169.*
i guess you can look for functions returning node streams, and just pipe
【 在 saynothing (止语) 的大作中提到: 】
: 遍历mongodb某张数据库表(比如一亿数据),挨个访问记录,并作计算。 记录数每到
: 100的时候,将计算结果插入到redis。
: 这里有个问题:插入成功,再进行游标访问记录。 程序不好控制? Promise如何写?
: ...................
--
FROM 180.170.98.*
我原来打算用perl 实现的,比较简便。 后来想想部署会增加点负担
还有,这个程序的一部分(针对增量数据),想做到服务器里面。服务器除了处理用户请
求、获取redis数据、返回计算结果。 还每隔10分钟,查询新增加的数据,更新redis
【 在 lokta (部落) 的大作中提到: 】
: 用python搞,我完全看不到难点。。
: 但是你用nodejs我就不知道了。。。
--
FROM 107.178.194.*
这个应该可以帮到你
https://caolan.github.io/async/docs.html#each
如果不用aync库自己写的话也可以,大概是这个意思:
var data_array = [];
function processArray(array, index, callback) {
processItem(array[index], function(){
if(++index === array.length) {
callback();
return;
}
processArray(array, index, callback);
});
};
function processItem(item, callback) {
data_array.push(item['somefield']);
if (data_array.length > 100) {
insert_to_redis(data_array, callback);
data_array = [];
}
}
dataCollection.find({'date' : {'$gt': starttime}}).toArray(function(err, docs) {
processArray(docs, 0, function(){
if (data_array.length > 0) {
insert_to_redis(data_array);
}
});
});
【 在 saynothing 的大作中提到: 】
: 遍历mongodb某张数据库表(比如一亿数据),挨个访问记录,并作计算。 记录数每到
: 100的时候,将计算结果插入到redis。
: 这里有个问题:插入成功,再进行游标访问记录。 程序不好控制? Promise如何写?
: ...................
--
修改:sumeragi FROM 61.149.216.*
FROM 61.149.216.*
想想没有promise前贵js是咋做的,不就是一个回调吗
【 在 saynothing 的大作中提到: 】
: 遍历mongodb某张数据库表(比如一亿数据),挨个访问记录,并作计算。 记录数每到
: 100的时候,将计算结果插入到redis。
: 这里有个问题:插入成功,再进行游标访问记录。 程序不好控制? Promise如何写?
: ...................
--
FROM 113.108.133.*