उदाहरण के लिए, यह कोड "डेटा" नामक संग्रह में परिणामित होता है
var Dataset = mongoose.model('data', dataSchema);
और इस कोड के परिणामस्वरूप "उपयोगकर्ता" नामक एक संग्रह तैयार होता है
var User = mongoose.model('user', dataSchema);
धन्यवाद
उदाहरण के लिए, यह कोड "डेटा" नामक संग्रह में परिणामित होता है
var Dataset = mongoose.model('data', dataSchema);
और इस कोड के परिणामस्वरूप "उपयोगकर्ता" नामक एक संग्रह तैयार होता है
var User = mongoose.model('user', dataSchema);
धन्यवाद
जवाबों:
Mongoose आपके संग्रह नाम को बहुवचन बनाकर स्मार्ट बनने की कोशिश कर रहा है। हालाँकि आप इसे जो चाहें करने के लिए मजबूर कर सकते हैं:
var dataSchema = new Schema({..}, { collection: 'data' })
Mongoose.model की एपीआई संरचना यह है:
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);
5. आम से शुरू करके आप इसे पूरी तरह से निष्क्रिय कर सकते हैं:
mongoose.pluralize(null);
आप तीसरे पैरामीटर के रूप में संग्रह नाम जोड़ सकते हैं। टाइपस्क्रिप्ट का उपयोग करके उदाहरण देखें:
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.pluralize(null)
आपकी Mongoose फ़ाइल में लाइन जोड़ने से संग्रह नाम बहुवचन को रोका जा सकेगा। आपको अपनी मॉडल फ़ाइलों में इस पंक्ति को जोड़ने की आवश्यकता नहीं है।
अगली पंक्ति में अपने स्कीमा को परिभाषित करने के अंत में इस कोड का उपयोग करें
module.exports = mongoose.model("State", "StateSchema", "state")
यह मानते हुए कि आपका राज्य वह है जो आप अपने db पर राज्यों के रूप में उपयोग करने से बचना चाहते हैं
जब आप इस कमांड को चलाते हैं तो Mongoose आपके लिए एक मॉडल संकलित करता है
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var child = mongoose.model('child', schema);
पहला तर्क आपके मॉडल के संग्रह का विलक्षण नाम है। Mongoose स्वचालित रूप से आपके मॉडल नाम के बहुवचन, निचले स्तर वाले संस्करण की तलाश करता है। इस प्रकार, ऊपर दिए गए उदाहरण के लिए, मॉडल बच्चा डेटाबेस में बच्चों के संग्रह के लिए है।
नोट:.model()
समारोह स्कीमा की एक प्रतिलिपि बनाता। सुनिश्चित करें कि आपने कॉल करने से पहले, हुक सहित स्कीमा को जो भी आप चाहते हैं, सब कुछ जोड़ दिया है .model()
!