continue work on user migration
This commit is contained in:
@ -65,7 +65,7 @@ var userSchema = new mongoose.Schema({
|
|||||||
default: ''
|
default: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
challengesHash: {},
|
||||||
portfolio: {
|
portfolio: {
|
||||||
website1Link: {
|
website1Link: {
|
||||||
type: String,
|
type: String,
|
||||||
@ -137,7 +137,8 @@ var userSchema = new mongoose.Schema({
|
|||||||
longestStreak: {
|
longestStreak: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
}
|
},
|
||||||
|
needsMigration: { type: Boolean, default: true }
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,26 +10,33 @@ var mongoClient = new MongoClient(new Server('localhost', 27017), {native_parser
|
|||||||
var mongoose = require('mongoose');
|
var mongoose = require('mongoose');
|
||||||
mongoose.connect(secrets.db);
|
mongoose.connect(secrets.db);
|
||||||
|
|
||||||
User.find(function(err, users) {
|
var stream = User.find( { needsMigration: true }).batchSize(10000).stream();
|
||||||
if (err) { console.log(err) }
|
stream.on('data', function(user) {
|
||||||
users.forEach(function(user) {
|
console.log('test');
|
||||||
console.log('in users');
|
user.needsMigration = true;
|
||||||
if (typeof user.challengesHash !== 'undefined') {
|
user.save();
|
||||||
var oldChallenges = Object.keys(user.challengesHash).filter(function (challenge) {
|
}).on('error', function(err) {
|
||||||
return user.challengesHash[challenge];
|
console.log(err);
|
||||||
}).map(function (data) {
|
}).on('close', function() {
|
||||||
return ({
|
console.log('done with set');
|
||||||
challengeNum: data,
|
|
||||||
timeStamp: user.challengesHash[data]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
oldChallenges.forEach(function (challenge) {
|
|
||||||
user.progressTimestamps.push(challenge.timeStamp);
|
|
||||||
});
|
|
||||||
newChallenges = newChallenges.filter(function (elem) {
|
|
||||||
return elem.newId;
|
|
||||||
});
|
|
||||||
console.log(newChallenges);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
//console.log(typeof(user.challengesHash));
|
||||||
|
//if (user.challengesHash && typeof(user.challengesHash) === Object) {
|
||||||
|
// var oldChallenges = Object.keys(user.challengesHash).filter(function (challenge) {
|
||||||
|
// console.log(challenge);
|
||||||
|
// return user.challengesHash[challenge];
|
||||||
|
// }).map(function (data) {
|
||||||
|
// return ({
|
||||||
|
// challengeNum: data,
|
||||||
|
// timeStamp: user.challengesHash[data]
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// oldChallenges.forEach(function (challenge) {
|
||||||
|
// user.progressTimestamps.push(challenge.timeStamp);
|
||||||
|
// });
|
||||||
|
// newChallenges = newChallenges.filter(function (elem) {
|
||||||
|
// return elem.newId;
|
||||||
|
// });
|
||||||
|
// console.log(newChallenges);
|
||||||
|
//});
|
||||||
|
//});
|
||||||
|
Reference in New Issue
Block a user