In my schema, if I have options
in metrics : [ { options : {} } ]
then I get:
/home/one/cloudimageshare-monitoring/project/node_modules/mongoose/lib/schema.js:282
throw new Error("`" + path + "` may not be used as a schema pathname");
^
Error: `options` may not be used as a schema pathname
But if change options
to any other word... like qoptions
....then the error goes away. Why is this happening?
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var FilesystemSchema = new mongoose.Schema({
timeStamp : { type : Date, index: true },
avaiable : Boolean,
status : String,
metrics : [
{ options : {
data : String,
type : String,
unit : String
}
},
{ freeFiles : {
data : Number,
type : String,
unit : String
}
},
{ total : {
data : Number,
type : String,
unit : String
}
},
{ avail : {
data : Number,
type : String,
unit : String
}
},
{ free : {
data : Number,
type : String,
unit : String
}
},
{ files : {
data : Number,
type : String,
unit : String
}
},
{ used : {
data : Number,
type : String,
unit : String
}
}
]
});
module.exports = FilesystemSchema;
Mongoose has a number of Reserved
schema names that can't be used, to avoid conflicting with Mongoose's internal implementation. The list, from the docs gives the following as reserved:
on, emit, _events, db, get, set, init, isNew, errors, schema, options, modelName, collection, _pres, _posts, toObject
These terms should be avoided in your schema!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With