function iniProcessDetail(isjob) {
var cursor = logColl.find({}).sort({ip: 1});
var insertbolk = [];
var eveipobj = {};
var hasinsertdetail = 0;
var goNext = true;
function InsertDbs(teminsert) {
console.log("will insert" + teminsert.length);
(function (insertbolk) {
logprocessDetailColl.insert(insertbolk, function (err) {
hasinsertdetail += insertbolk.length;
console.log("insert insertprocessDetails count" + hasinsertdetail);
});
})(teminsert)
insertbolk = [];
}
async.whilst(
function () {
return goNext;
},
function (callback) {
cursor.nextObject(function (err, item) {
// less 1
// if (insertbolk.length == 1000) {
// InsertDbs(insertbolk);
// }
if (item) {
setTimeout(function () {
function inieveipobj(eveipobj, item) {
eveipobj._id = eveipobj._id || item.ip;
eveipobj.value = eveipobj.value || {};
eveipobj.value.arr = eveipobj.value.arr || [];
return eveipobj;
}
eveipobj = inieveipobj(eveipobj, item);
if (eveipobj._id != item.ip) {
(function (eveipobj) {
var prodetail = ipMeta.getProcessDetail(eveipobj)
insertbolk.push(prodetail);
})(eveipobj)
eveipobj = {};
eveipobj = inieveipobj(eveipobj, item);
}
var obj = {}
obj.gps = item.gps;
obj.created = item.created;
eveipobj.value.arr.push(obj);
if (insertbolk.length == 1000) {
InsertDbs(insertbolk);
}
callback();
}, 5);
} else {
goNext = false;
callback();
}
})
},
function (err) {
if (insertbolk.length > 0) {
InsertDbs(insertbolk);
}
console.log('No Map/Reduce IniProdetails Finished', err);
if (isjob) {
fromDetailTolocation(isjob);
}
}
);
}