মঙ্গুজ - ফোর্স সংগ্রহের নাম


120

আমি এটিতে একটি ডেটাবেস এবং সংগ্রহ তৈরির জন্য মঙ্গুজ ব্যবহার করার চেষ্টা করছি। আমার কোডটি হ'ল:

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();

আমি যখন এই কোডটি চালাচ্ছি, মংগুজ ইউজারআইনফোর পরিবর্তে ইউজারআইএনফো নামে সংগ্রহ তৈরি করেছে। মঙ্গুজে কীভাবে সংগ্রহের নাম জোর করবেন?


14
মজাদার ঘটনা: মঙ্গুজ জানেন যে গরুর বহুবর্ষটি গরুর মাংস, তবে এটি নয় যে হংসের বহুবচন গিজ।
শান লেটেন্ডের

উত্তর:


201

এটি করা উচিত

var UserInfo = new Schema({
  username : String,
  password : String 
}, { collection: 'userinfo' });

আরও তথ্যের জন্য মঙ্গুজ ডকুমেন্টেশন থেকে এই লিঙ্কটি দেখুন ।


7
এর জন্য ধন্যবাদ. এখানে প্রাসঙ্গিক লিঙ্কটি রয়েছে: mongoosejs.com/docs/guide.html#colલેક્શન
জন পৃষ্ঠা

2
ধন্যবাদ @ জোনপেজ, আমি ভাবছিলাম কেন আমার ব্যক্তি পদার্থের সংগ্রহকে লোক হিসাবে নামকরণ করা হয়েছে? আপনার দেওয়া লিঙ্কটি একটি ভাল রেফারেন্স। আমি মনে করি স্কিমা তৈরি করার সময় কাস্টম সংগ্রহের নাম নির্ধারণের এই পদ্ধতিটি মডেল তৈরি করার সময় সংগ্রহের নাম সংজ্ঞায়নের অন্যান্য পদ্ধতির চেয়ে ভাল।
ভারত

এটি অত্যন্ত সহায়ক ছিল। আমি এখন কিছু জিজ্ঞাসা করার চেষ্টা করে দু'দিন কাটিয়েছি।
হল্ট ম্যানসফিল্ড

79

আপনি যদি মঙ্গুজ ২.০ ব্যবহার করেন তবে সংগ্রহটি নামটি তৃতীয় আর্গুমেন্ট হিসাবে পাস করুন

mongoose.model('UserInfo', UserInfo, 'UserInfo');

মডেলের স্তরে কাস্টম সংগ্রহের নাম ঘোষণা করার সঠিক উপায়।
তেজকা

25

মঙ্গুজ ডিফল্টরূপে সংগ্রহের নামে 's' যুক্ত করবে। আপনি যদি তা এড়াতে চান তবে সংগ্রহের নাম হিসাবে তৃতীয় যুক্তি হিসাবে পাস করুন:

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();

1
এটি সেরা পরামর্শ। সংগ্রহের নামটি কেবল মঙ্গুজ.মডেল () এ পাস করা আমার পক্ষে সর্বদা সহজ found সংগ্রহের নামটি মঙ্গুজ কীভাবে বহুবচন করে তুলে ধরার জন্য এটিও ভাল, এটি প্রথম যখন শুরু হয়েছিল তখন বিভ্রান্ত হয়েছিল।
জন মরিসন

14

মঙ্গুজ.মোডেলের এপিআই কাঠামোটি হ'ল:

Mongoose#model(name, [schema], [collection], [skipInit])

মঙ্গুজ যা করেন তা হ'ল, যখন কোনও সংগ্রহের যুক্তিটি পাস না করা হয়, তখন মোঙ্গুজ মডেলের নামটি বহুবচন করে সংগ্রহের নাম তৈরি করে। আপনি যদি এই আচরণটি পছন্দ না করেন তবে হয় সংগ্রহের নামটি পাস করুন বা আপনার স্কিমাস সংগ্রহের নাম বিকল্প সেট করুন।

উদাহরণ:

var schema = new Schema({ name: String }, { collection: 'actor' });

অথবা

schema.set('collection', 'actor');

অথবা

var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName);



1

উত্তর:

mongoose.model('UserInfo', UserInfo, 'userinfo'); //3rd parameter 'userinfo': as collection name

সিনট্যাক্স সহ আরও ভাল ব্যাখ্যা:

Mongoose.model(name, [schema], [collection], [skipInit])

পরামিতি ব্যাখ্যা:

  • 1 ম প্যারামিটার - নাম মডেল নাম
  • ২ য় পরামিতি [স্কিমা] স্কিমা নাম
  • তৃতীয় প্যারামিটার [সংগ্রহ] সংগ্রহের নাম (alচ্ছিক, মডেলের নাম থেকে উত্সাহিত)
  • চতুর্থ প্যারামিটার [skipInit] ইনিশিয়ালেশন এড়িয়ে যাবেন কিনা (মিথ্যাতে ডিফল্ট হবে)

0

আপনার মডেল নাম: 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);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.