[#1711] got it! task.*.history & user.history as defined schemas was the

problem, since they're arrays of >100 each
This commit is contained in:
Tyler Renelle 2013-11-02 12:49:08 -07:00
parent 01536a2e29
commit 838108d579
4 changed files with 8 additions and 25 deletions

View file

@ -70,7 +70,6 @@ function deleteTask(user, task) {
function addTask(user, task) {
task = helpers.taskDefaults(task);
task._id = task.id;
user[task.type+'s'].unshift(task);
return task;
}

View file

@ -41,7 +41,7 @@ ChallengeSchema.methods.toJSON = function(){
doc._isMember = this._isMember;
_.each(['habits','dailys','todos','rewards'], function(type){
_.each(doc[type],function(task){
task.id = task._id;
task.id = task.id || task._id;
})
})
return doc;

View file

@ -12,9 +12,9 @@ var _ = require('lodash');
// Task Schema
// -----------
var TaskSchema = new Schema({
var TaskSchema = {
_id:{type: String,'default': helpers.uuid},
history: [{date:Date, value:Number}],
history: Array, // [{date:Date, value:Number}], // this causes major performance problems
text: String,
notes: {type: String, 'default': ''},
tags: {type: Schema.Types.Mixed, 'default': {}}, //{ "4ddf03d9-54bd-41a3-b011-ca1f1d2e9371" : true },
@ -32,21 +32,6 @@ var TaskSchema = new Schema({
winner: String // user.profile.name
// group: {type: 'Strign', ref: 'Group'} // if we restore this, rename `id` above to `challenge`
}
}, {
minimize: 'false'
});
/**
* FIXME why is this function is never called? Instead we're doing a _.each(obj.tasks) in challenges & user
*/
TaskSchema.methods.toJSON = function() {
var doc = this.toObject();
doc.id = doc._id;
return doc;
}
TaskSchema.virtual('id').get(function(){
return this._id;
})
};
module.exports.schema = TaskSchema;
module.exports.model = mongoose.model("Task", TaskSchema);

View file

@ -83,8 +83,8 @@ var UserSchema = new Schema({
rest: {type: Boolean, 'default': false} // fixme - change to preferences.resting once we're off derby
},
history: {
exp: [{date: Date, value: Number}],
todos: [{data: Date, value: Number}]
exp: Array, // [{date: Date, value: Number}], // big peformance issues if these are defined
todos: Array //[{data: Date, value: Number}] // big peformance issues if these are defined
},
/* FIXME remove?*/
@ -209,10 +209,9 @@ UserSchema.methods.toJSON = function() {
doc.filters = {};
doc._tmp = this._tmp; // be sure to send down drop notifs
// TODO why isnt' this happening automatically given the TaskSchema.methods.toJSON above?
_.each(['habits','dailys','todos','rewards'], function(type){
_.each(doc[type],function(task){
task.id = task._id;
task.id = task.id || task._id;
})
})