一切正常,直到我想创建一个名为' Mice'例如。 Mouses和Mices都是不可接受的。如果有一个选项可以在配置中设置它,那将会很好。 评论:感谢您的建议,我使用的是Mongoose。
答案 0 :(得分:36)
如果您将模型命名为“鼠标”,那么Mongoose实际上会将集合名称正确地复制到' mouse' (见source code)。
但您也可以在创建模型时通过将其作为第三个参数传递给model
来明确命名您的集合:
var Mice = mongoose.model('Mice', MouseSchema, 'Mice');
答案 1 :(得分:1)
mongoose.model的API结构是这样的: Mongoose#model(name,[schema],[collection],[skipInit])
mongoose做的是,当没有传递集合参数时,Mongoose通过复制模型名称来生成集合名称。如果您不喜欢此行为,请传递集合名称或设置模式集合名称选项。
实施例
var schema = new Schema({name:String},{collection:' actor'});
//或
schema.set(' collection',' actor');
//或
var collectionName ='演员' var M = mongoose.model(' Actor',schema,collectionName);
有关更多信息,请查看此链接: http://mongoosejs.com/docs/api.html#index_Mongoose-model
答案 2 :(得分:0)
这是代码,如何理解猫鼬如何产生复数形式
function pluralize(str) {
var found;
str = str.toLowerCase();
if (!~uncountables.indexOf(str)) {
found = rules.filter(function(rule) {
return str.match(rule[0]);
});
if (found[0]) {
return str.replace(found[0][0], found[0][1]);
}
}
return str;
}
参考链接:https://github.com/vkarpov15/mongoose-legacy-pluralize/blob/master/index.js