在我的模式中,如果我在metrics : [ { options : {} } ]
中有options
,那么我得到:
/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
字符串
但是如果把options
改成任何其他的单词.比如qoptions
.那么错误就消失了。为什么会发生这种情况呢?
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;
型
2条答案
按热度按时间eyh26e7m1#
Mongoose有许多不能使用的
Reserved
模式名称,以避免与Mongoose的内部实现冲突。文档中的列表给出了以下保留名称:字符串
这些术语应该在你的模式中避免!
bfrts1fy2#
我也遇到了同样的问题,因为我们不能使用像
options
,errors
..字符串
然后,一切都如预期的那样。
下面是mongoose repo中关于Remove all reserved keywords from schema主题的问题