Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
130
rated 0 times [  134] [ 4]  / answers: 1 / hits: 15881  / 10 Years ago, thu, february 19, 2015, 12:00:00

I'm trying to do some relations between my schemas and I have some problems with my solution.
Here is my device schema:



var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Types.ObjectId, ref: 'User'}]
});


and here room schema:



var roomSchema = schema({
name : String,
image : String,
devices: [{type: mongoose.Types.ObjectId, ref: 'Device'}]
});


Mongoose throws error




TypeError: Undefined type ObjectID at room Did you try nesting
Schemas? You can only nest using refs or arrays.




If I change room: {type: mongoose.Types.ObjectId, ref: 'Room'}, to room: {type: Number, ref: 'Room'}, everything works. Could you explain me why this is happening?


More From » node.js

 Answers
3

mongoose.Types.ObjectId is the ObjectId constructor function, what you want to use in schema definitions is mongoose.Schema.Types.ObjectId (or mongoose.Schema.ObjectId).



So deviceSchema should look like this instead:



var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Schema.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Schema.Types.ObjectId, ref: 'User'}]
});

[#67752] Wednesday, February 18, 2015, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
gabriel

Total Points: 323
Total Questions: 107
Total Answers: 108

Location: Federated States of Micronesia
Member since Sun, May 16, 2021
3 Years ago
;