たとえば、このコードの結果、「datas」というコレクションが作成されます
var Dataset = mongoose.model('data', dataSchema);
このコードにより、「users」というコレクションが作成されます
var User = mongoose.model('user', dataSchema);
ありがとう
たとえば、このコードの結果、「datas」というコレクションが作成されます
var Dataset = mongoose.model('data', dataSchema);
このコードにより、「users」というコレクションが作成されます
var User = mongoose.model('user', dataSchema);
ありがとう
回答:
Mongooseはコレクション名を複数にすることで賢くしようとしています。ただし、必要に応じて強制することもできます。
var dataSchema = new Schema({..}, { collection: 'data' })
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 = 'actor'
var M = mongoose.model('Actor', schema, collectionName);
mongoose 5.x以降では、完全に無効にすることができます。
mongoose.pluralize(null);
コレクション名を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;
次の行でスキーマを定義する最後にこのコードを使用します
module.exports = mongoose.model("State", "StateSchema", "state")
あなたの状態が、sを状態として回避するためにdbで使用したいものであると仮定します
このコマンドを実行すると、Mongooseがモデルをコンパイルします
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var child = mongoose.model('child', schema);
最初の引数は、モデルが対象とするコレクションの単一の名前です。Mongoose は、モデル名の複数形の小文字バージョンを自動的に検索します。したがって、上記の例の場合、モデルの子はデータベースの子コレクション用です。
注:この.model()
関数はスキーマのコピーを作成します。を呼び出す前に、フックを含め、スキーマに必要なすべてのものを追加したことを確認してください.model()
。