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