Cast to number failed for value "[object Object]" at path "undefined"

1,984 views
Skip to first unread message

Matt Clark

unread,
Feb 21, 2013, 8:55:13 AM2/21/13
to mongoo...@googlegroups.com
I have this schema:

var Photo = new Schema({
     URL:String
    ,description:String
    ,created_by:{type:ObjectId, ref:'User'}
    ,created_at:{type:Date, default:Date.now()}
});

var User = new Schema({
    name:{type:String,index:true}
    ,email:{type:String,index:true, unique:true}
});

//Task model                                                                                                                                                                                       
var Task = new Schema({
    title:String
   ,created_by:{type:ObjectId, ref: 'User'}
   ,created:{type:Date, default:Date.now()}
   ,responses:[{
       type:Number
      ,user:{type:ObjectId, ref: 'User'}
       ,comment:String
       ,avatarURL:String
       ,photo:{type:ObjectId, ref: 'Photo'}
      ,created:{type:Date, default:Date.now()}
   }]
});

//Group model                                                                                                                                                                                      
var Group = new Schema({
     name:String
    ,tasks:[Task]
});



and this code errors out (group is fine, task at that idx is fine,responses is an empty array,user is valid,photo is valid):

 
var typePhoto = 6;
 
var resp = {
      type
: typePhoto//photo                                                                                                                                                
     
,user: user._id
     
,photo: photo._id
 
};


 
group.tasks[taskIdx].responses.push(resp); //errors out here

at that point I get the following error:

/home/admin/notitws/node_modules/mongoose/lib/utils.js:434
        throw err;
              ^
CastError: Cast to number failed for value "[object Object]" at path "undefined"
    at SchemaNumber.cast (/home/admin/notitws/node_modules/mongoose/lib/schema/number.js:127:9)
    at Array.MongooseArray._cast (/home/admin/notitws/node_modules/mongoose/lib/types/array.js:78:15)
    at Object.map (native)
    at Array.MongooseArray.push (/home/admin/notitws/node_modules/mongoose/lib/types/array.js:187:23)
    at exports.taskAddPhoto (/home/admin/notitws/routes/group.js:1097:35)
    at Promise.exports.createPhoto (/home/admin/notitws/routes/photos.js:106:4)
    at Promise.addBack (/home/admin/notitws/node_modules/mongoose/lib/promise.js:128:8)
    at Promise.EventEmitter.emit (events.js:96:17)
    at Promise.emit (/home/admin/notitws/node_modules/mongoose/lib/promise.js:66:38)
    at Promise.complete (/home/admin/notitws/node_modules/mongoose/lib/promise.js:77:20)


Any ideas on how to fix this or what may be causing it?

Thanks!
-Matt

PS Don't know if it matters but in the call to get group I am populating tasks.responses.user and tasks.responses.photo and tasks.created_by.

Matt Clark

unread,
Feb 21, 2013, 10:22:42 AM2/21/13
to mongoo...@googlegroups.com
fixed it was the "type:Number" should have been "type:{type:Number}"
Reply all
Reply to author
Forward
0 new messages