mongoosejs model mapping to collection name

时间:2022-03-10 15:49:13

mongoosejs 是一个对象模型工具,将mongodb的collection中的Document映射为Model

典型用法如下

var mongoose = require('mongoose');
var Schema = mongoose.Schema; var analysisSchema = new Schema({
"method": String,
"name": String,
"scenario": Schema.Types.Mixed,
"tree_id": String
}); var analysisModel = mongoose.model('Analysis', analysisSchema);

那么mongoosejs的model名字和mongodb中的collection名字是如何对应的呢 ?

参见代码 node_modules/mongoose/lib/utils.js 中的 toCollectionName 方法

默认情况下: mongoosejs options的 pluralization 为 true, 这个时候

mongoosejs 将使用 utils 中的 pluralize 方法 将 model名转化为 collection名

pluralization 为 false 的时候,collection的名字将和model名字相同

pluralize 转换规则特别神奇,主要有转换为小写, 名词是否可数,单复数形式等, 采用了正则等检测方法.

比如 上面例子的 Analysis 对应的 collection名字为 analyses