たとえば、このコードにより、「datas」というコレクションが作成されます
var Dataset = mongoose.model('data', dataSchema);
このコードにより、「ユーザー」というコレクションが作成されます
var User = mongoose.model('user', dataSchema);
ありがとう
マングースはスマートになろうとしています。ただし、必要なものに強制できます。
var dataSchema = new Schema({..}, { collection: 'data' })
Mongoose.modelのAPI構造は次のとおりです。
Mongoose#model(name, [schema], [collection], [skipInit])
Mongooseは、コレクション引数が渡されない場合、モデル名を複数形にすることでコレクション名を生成します。この動作が気に入らない場合は、コレクション名を渡すか、スキーマコレクション名オプションを設定します。
例:
var schema = new Schema({ name: String }, { collection: 'actor' });
または
schema.set('collection', 'actor');
または
var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName);
Mongoose 5.x以降では、完全に無効にすることができます。
mongoose.pluralize(null);
3番目の引数として文字列を追加するだけで、コレクションの実際の名前を定義できます。名前をそれぞれdata
およびuser
として保持するように例を拡張します。
var Dataset = mongoose.model('data', dataSchema, 'data');
var User = mongoose.model('user', dataSchema, 'user');
コレクション名を3番目のパラメーターとして追加できます。 TypeScriptを使用した例を参照してください。
import DataAccess = require('../DataAccess');
import IUser = require("../../Models/Interfaces/IUser");
var mongoose = DataAccess.mongooseInstance;
var mongooseConnection = DataAccess.mongooseConnection;
class UserSchema {
static get schema () {
var schema = mongoose.Schema({
_id : {
type: String
},
Name: {
type: String,
required: true
},
Age: {
type: Number,
required: true
}
});
return schema;
}
}
var schema:any = mongooseConnection.model<IUser>("User",
UserSchema.schema,"User");
export = schema;
_//Mongoose's definition file. NOT your model files
1 const mongoose = require("mongoose");
2 mongoose.pluralize(null);
_
Mongooseファイルにlinemongoose.pluralize(null)
を追加すると、コレクション名の複数形化が防止されます。この行をモデルファイルに追加する必要はありません。
見られるように ここ 。