Mongooseを使用してデータベースとそのコレクションを作成しようとしています。私のコードは:
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/testdb');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
username : String,
password : String
});
mongoose.model('UserInfo', UserInfo);
var user = db.model('UserInfo');
var admin = new user();
admin.username = "sss";
admin.password = "ee";
admin.save();
このコードを実行すると、mongooseはuserinfoではなくUserInfoという名前のコレクションを作成しました。マングースでコレクション名を強制する方法は?
これはそれを行う必要があります
var UserInfo = new Schema({
username : String,
password : String
}, { collection: 'userinfo' });
詳細については、Mongooseドキュメントの このリンク を参照してください。
Mongoose 2.0.0を使用している場合、collectionNameを3番目の引数として渡します
mongoose.model('UserInfo', UserInfo, 'UserInfo');
Mongooseは、デフォルトでコレクション名に「s」を追加します。それを避けたい場合は、3番目の引数としてコレクションの名前を渡すだけです:
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/testdb');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
username: String,
password: String
});
mongoose.model('UserInfo', UserInfo, 'UserInfo')
tan = new user();
admin.username = 'sss';
admin.password = 'ee';
admin.save();
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);
スキーマにコレクション名を設定する必要があります。
new Schema({...},{collection: 'userInfo'});
ここでマングースのメンテナー。 mongoose.model('UserInfo', UserInfo, 'UserInfo');
を実行することをお勧めします。mongoose.model()
の3番目の引数はコレクション名です。 関連ドキュメントはこちら 。
回答:
mongoose.model('UserInfo', UserInfo, 'userinfo'); //3rd parameter 'userinfo': as collection name
構文に関する説明の改善:
Mongoose.model(name, [schema], [collection], [skipInit])
パラメーターの説明:
あなたのモデル名:userInfo.js
エクスプレスルートファイルまたはapp.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/testdb');
その後、userInfo.jsで
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
username : String,
password : String
});
module.exports = mongoose.model('UserInfo', UserInfo);