Saya mencoba menggunakan luwak untuk membuat database dan koleksi di dalamnya. Kode saya adalah:
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();
Ketika saya menjalankan kode ini, luwak membuat koleksi bernama UserInfo bukan userinfo. Bagaimana cara memaksa nama koleksi di luwak?
Jawaban:
Ini harus dilakukan
Lihat tautan ini dari dokumentasi Mongoose untuk informasi lebih lanjut.
sumber
Jika Anda menggunakan mongoose 2.0.0, teruskan collectionName sebagai argumen ketiga
sumber
Mongoose akan menambahkan 's' ke nama koleksi secara default. Jika Anda ingin menghindarinya, berikan nama koleksi sebagai argumen ketiga:
sumber
Struktur API mongoose.model adalah ini:
Apa yang dilakukan luwak adalah, Ketika tidak ada argumen koleksi yang dilewatkan, Mongoose menghasilkan nama koleksi dengan menjumlahkan nama model. Jika Anda tidak menyukai perilaku ini, berikan nama koleksi atau setel opsi nama koleksi skema Anda.
Contoh:
atau
atau
sumber
Anda perlu menyetel nama koleksi di skema Anda.
sumber
Pemelihara luwak di sini. Sebaiknya lakukan
mongoose.model('UserInfo', UserInfo, 'UserInfo');
, arg ke ketigamongoose.model()
adalah nama koleksi. Berikut dokumen yang relevan .sumber
Menjawab:
Penjelasan Parameter:
sumber
nama model Anda: userInfo.js
dalam file rute ekspres atau app.js
lalu di userInfo.js Anda
sumber