Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var async = require("async");
- var subjectsAgents = require('../modules/subjects');
- var values = require('../modules/values');
- var mongodb = require('../modules/mongodb');
- var config = require('../../api/config.json');
- //screen -dmSL mfroot node --stack-size=100000 migrations/00001.js
- mongodb.openDatabase(config.database, config.mongodb.host, config.mongodb.port, config.mongodb.user, config.mongodb.password, function (err, newdb) {
- if (err) {
- console.log(err);
- return;
- };
- console.log("migrating identities to expected strucutre of {name: <key>, value: <value>}...");
- // Services use Database
- values.useDatabase(newdb);
- var repository = mongodb.createRepository(newdb, 'values');
- var startTime = new Date().getTime();
- var query = {
- "identity.value":""
- },
- options = {};
- repository.findGetCursor(query, options, function(err, cursor) {
- function processItem(index, cb) {
- cursor.nextObject(function(err, item) {
- console.log("item", item._id.toHexString());
- if(item){
- //TODOhere perform the actual change in structure
- //console.log("PROCESSING " + index + " BEFORE: " + JSON.stringify(item.identity));
- //item.identity = normalizeIdentity(item.identity);
- //item.identity[0].name = "username";
- //console.log("PROCESSING " + index + " AFTER : " + JSON.stringify(item.identity));
- repository.update(item._id.toHexString(),
- {
- $set: {
- "identity.value": item.provider_context["X-Mofiler-InstallID"]
- }
- }
- , function(err){
- if(index % 1000 == 0){
- var tmpend = new Date().getTime();
- var timeelapsed = tmpend - startTime;
- console.log("Processed " + index + " items - elapsed time: " + timeelapsed);
- }
- if (cb)
- cb();
- });
- }
- });
- }
- var queue = async.queue(processItem, 1000); // Run ten simultaneous process
- queue.drain = function() {
- console.log("Finished!");
- var end = new Date().getTime();
- var time = end - startTime;
- console.log("FINISHEDbb in xxx seconds: " + time);
- };
- cursor.count(function(err, count) {
- console.log(count);
- if(err) {
- console.log(err);
- return;
- }
- for (var i = 0; i < count; i++) {
- queue.push(i, function(err) {});
- };
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement