মঙ্গুজ বনাম মংডব (নোডেজ মডিউল / এক্সটেনশন), এর চেয়ে ভাল আর কী? এবং কেন?


109

আমি সবেমাত্র নোড.জেজে পৌঁছেছি এবং মঙ্গোডিবি-র সাথে ব্যবহার করার জন্য অনেকগুলি লিবি রয়েছে বলে সর্বাধিক জনপ্রিয় বলে মনে হচ্ছে এটি দুটি: (মঙ্গুজ এবং মোংডোব)। আমি কি এই এক্সটেনশনগুলির পক্ষে ভাল এবং কনস পেতে পারি? এই দু'জনের কি আরও ভাল বিকল্প আছে?

সম্পাদনা: একটি নতুন লাইব্রেরি পাওয়া গেছে যা নোড-মোঙ্গোলিয়ানও মনে হয় এবং এটি "মঙ্গোলিয়ান ডেডবিফ একটি দুর্দান্ত মঙ্গো ডিবি নোড.জেএস ড্রাইভার যা মংডোব শেলটি কাছাকাছি আনার চেষ্টা করে।" (Readme.md)

https://github.com/marcello3d/node-mongolian

এটি কেবল নতুন ব্যক্তিদের আরও বেশি সংস্থান যুক্ত করার জন্য যা এটি দেখায়, তাই মূলত মঙ্গোলিয়ই এটি একটি ওডিএমের মতো ...


স্কিমা কম ডাটাবেসের জন্য কেন স্কিমা স্তর ব্যবহার করবেন। আপনি যদি স্কিমা ভিত্তিক ডাটাবেস চান তবে এর জন্য তৈরি করা অন্য কোনও ব্যবহার করুন। (মঙ্গুজ কেবল মঙ্গোডবের একটি স্কিমা বিমূর্ততা)
সাইমন ড্রাগসবাইক

উত্তর:


123

মঙ্গুজ উচ্চ স্তরের এবং মঙ্গোডিবি ড্রাইভার ব্যবহার করে (এটি একটি নির্ভরতা, প্যাকেজ.জসন পরীক্ষা করে দেখুন), সুতরাং আপনি সেই বিকল্পগুলি যে কোনও উপায়ে ব্যবহার করবেন। আপনার নিজের যে প্রশ্নটি জিজ্ঞাসা করা উচিত তা হ'ল "আমি কি কাঁচা ড্রাইভার ব্যবহার করতে চাই, বা আমার কোনও অবজেক্ট-ডকুমেন্ট মডেলিংয়ের সরঞ্জাম প্রয়োজন?" আপনি যদি কিছু নিম্ন স্তরের কাজ এড়ানোর জন্য কোনও অবজেক্ট মডেলিং (ODM, এসকিউএল ওয়ার্ল্ড থেকে ওআরএমের একটি সহযোগী) সরঞ্জাম সন্ধান করছেন, আপনি মঙ্গুজ চাই

আপনি যদি কোনও ড্রাইভার চান, কারণ কোনও ওডিএম প্রয়োগ করতে পারে এমন অনেকগুলি নিয়ম ভাঙার আপনি মনস্থ করেছেন, মঙ্গোডিবিতে যান। আপনি যদি দ্রুত চালক চান এবং কিছু অনুপস্থিত বৈশিষ্ট্য নিয়ে বেঁচে থাকতে পারেন তবে মঙ্গোলিয়ান ডেডবিফকে চেষ্টা করে দেখুন: https://github.com/marcello3d/node-mongolian


34

মঙ্গুজ এখন পর্যন্ত সবচেয়ে জনপ্রিয়। আমি এটি ব্যবহার করেছি এবং অন্যকে ব্যবহার করি নি। সুতরাং আমি অন্যদের সম্পর্কে কথা বলতে পারি না, তবে আমি আপনাকে মঙ্গুসের সাথে আমার কড়া কথা বলতে পারি।

  • কঠিন / দুর্বল ডকুমেন্টেশন
  • মডেল ব্যবহার করা হয়। এবং তারা আপনার নথিগুলির জন্য কাঠামোর সংজ্ঞা দেয়। তবু এটি মঙ্গোর পক্ষে অদ্ভুত বলে মনে হচ্ছে যেখানে এর অন্যতম সুবিধা হ'ল আপনি একটি কলাম (ভুল, গুণ?) ছুঁড়ে ফেলতে পারেন বা একটি যুক্ত করতে পারেন না।
  • মডেলগুলি কেস সেনসিটিভ - আমি এবং আমার সাথে অন্যান্য ডিভসের সাথে কাজ করে এমন সমস্যাগুলির মুখোমুখি হয়েছিল যেখানে সংগ্রহের নামটির সাথে মডেলটি সংজ্ঞায়িত করা হয়েছে এটি কোনও কিছু না বাঁচাতে পারে, ডাব্লু / ও ত্রুটি। আমরা দেখতে পেয়েছি যে সমস্ত ছোট হাতের নাম ব্যবহার করা সবচেয়ে ভাল কাজ করে। যেমন কিছু করার পরিবর্তে mongooseInstace.model('MyCollection', { "_id": Number, "xyz": String })এটি করা ভাল (যদিও সংগ্রহের নামটি সত্যই সত্য MyCollection):mongooseInstace.model('mycollection', { "_id": Number, "xyz": String })

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


11
পুন: ডকুমেন্টেশন। আমি আর একমত হতে পারি না। ডকুমেন্টেশনটি খারাপ এবং বিষয়টি আরও খারাপ করে তোলে, এটি জায়গায় ভুল। আমি প্রায়শই নিজেকে কোডটি ক্র্যাক করে দেখতে পেলাম (যা কোনও খারাপ জিনিস নয়) তবে ডকুমেন্টেশনের সমস্যার কারণে।
জে পি রিচার্ডসন

1
এএফআইএকি সংগ্রহের নামগুলি মঙ্গোতে সংবেদনশীল, মঙ্গুজ নয়।
নিক ক্যাম্পবেল

34
যদি কেউ ডকুমেন্টেশন ভাবছে যে এখন বেশ ভাল।
কেভিন বিয়াল

7
আমি সম্মত হই না, ডকুমেন্টেশন এখনও কঠোর।
স্টিভ কে

5
ডকুমেন্টেশনের এখনও অভাব রয়েছে বলেও সম্মতি জানাতে পারেন
ব্রেন্ডন ওয়েইনস্টেইন

25

আমি নতুন অ্যাপ তৈরি করছি এবং এখন এর কাঠামো ডিজাইনিং করছি, কেন মঙ্গুজ ব্যবহার করবেন বা করবেন না সে সম্পর্কে কিছু চিন্তাভাবনা এখানে দেওয়া হয়েছে:

  1. মঙ্গুজ ধীর হবে (বড় অ্যাপের জন্য)
  2. আরও জটিল প্রশ্নগুলির সাথে মঙ্গুজ আরও শক্ত
  3. এমন পরিস্থিতিতে থাকবে যখন আপনি আরও গতি চান এবং আপনি মঙ্গুজ ছাড়াই বেছে নেবেন তখন আপনার কাছে মঙ্গুজ এবং অর্ধেক ডাব্লু / ও অর্ধেক ক্যোয়ারী থাকবে। এটাই পাগল অবস্থা, একবার ছিল ..
  4. মঙ্গুজ আপনাকে সহজ ডিবি স্ট্রাকচার সহ সাধারণ অ্যাপ্লিকেশনগুলির সাহায্যে দ্রুত কোড তৈরি করবে
  5. মঙ্গুজ আপনাকে মঙ্গোদব ডকস এবং মঙ্গুজ ডক্স পড়তে বাধ্য করবে
  6. মঙ্গুজের সাহায্যে আপনার স্ট্যাক নির্ভর করার জন্য আরও একটি জিনিস পাবে এবং এটি ছিন্ন হয়ে ছাই হয়ে যাওয়ার আরও একটি সম্ভাবনা রয়েছে।

মংডোব ড্রাইভারটি কাঁচা ড্রাইভার, আপনি সরাসরি মংডোব-তে যোগাযোগ করেন। মঙ্গুজ বিমূর্ত স্তর হয়। আপনার ডিবি কাঠামো যথেষ্ট সহজ থাকার সময় আপনি ডিবি করতে সহজ / ও পাবেন get

বিমূর্ততা এর প্রয়োজনীয়তা নিয়ে আসে এবং আপনাকে সেগুলি অনুসরণ করতে হবে। আপনার অ্যাপ্লিকেশনটি ধীর হবে, আরও বেশি র‌্যাম খান এবং আরও জটিল হবে, তবে কীভাবে এটি ব্যবহার করতে হয় তা আপনি যদি জানেন তবে আপনি দ্রুত সরল অবজেক্টগুলি দ্রুত লিখতে পারবেন, সেগুলি ডাটাবেসে সংরক্ষণ করতে পারেন।

মঙ্গুজ ছাড়াই আপনার কাছে মঙ্গদ্বের সাথে সরাসরি সংযোগের সাথে দ্রুত অ্যাপ্লিকেশন থাকবে। কেউ বলছেন না, আপনি ডিবিতে জিনিস সংরক্ষণ করতে নিজের মডেল লিখতে পারবেন না। আপনি পারেন। এবং আমি মনে করি এটি আরও সহজ। আপনি কোড লিখবেন, যা আপনি ব্যবহার করবেন, আপনি জানেন কী আপনার প্রয়োজন। আপনার বিমূর্ত স্তর স্তর ছোট হবে, তারপরে মঙ্গুসের।

আমি পিএইচপি ওয়ার্ল্ড থেকে আসছি, সেখানে আমাদের অবজ্ঞাত মাইএসকিএল_ ফাংশন সহ কাঁচা এসকিউএল ছিল, তারপরে আমরা পিডিও পেয়েছি - এসকিউএল এর সাথে যোগাযোগের জন্য অবজেক্ট ওরিয়েন্টেটেড অ্যাবস্ট্রাকশন স্তর। বা আপনি মঙ্গোডিবিতে মঙ্গুসের মতো একই জিনিস রাখার জন্য মতবাদ মত কিছু ভারী ওআরএম চয়ন করতে পারেন। সেটার / গেটার / সেভ পদ্ধতি এবং এর সাথে সম্পর্কিত বিষয়গুলি। এটি ঠিক আছে, তবে আরও বিমূর্ততা যোগ করে আপনি আরও ফাইল, আরও যুক্তি, আরও ডকুমেন্টেশন, আরও নির্ভরতা যুক্ত করছেন। আমি জিনিসগুলি সহজ রাখতে পছন্দ করি এবং আমার স্ট্যাকের মধ্যে কম নির্ভরতা রাখি। বিটিডাব্লু, সে কারণেই আমি পিএইচপি থেকে সার্ভার-ক্লায়েন্ট জাভাস্ক্রিপ্টে প্রথম স্থানে চলে এসেছি ..

মঙ্গুজের সাহায্যে আমি মনে করি কিছু সাধারণ অ্যাপ্লিকেশন লিখতে দারুণ লাগে , যার স্কিলের মতো সাধারণ ডিবি কাঠামো রয়েছে । আপনি যখন সাব-ডকুমেন্টস থাকা শুরু করেন এবং এই সমস্ত ক্রেজি ক্যোয়ারী তৈরি করতে চান আমি মঙ্গুসের সাথে এটি সত্যিই শক্ত। আপনাকে মংডোব ডকগুলি দেখতে হবে, তারপরে আপনি কী চান এমন কোনও ক্যোয়ারী তৈরি করতে পারেন তা জানতে মঙ্গস ডক্সের দিকে নজর দিন। কখনও কখনও আপনি দেখতে পাবেন যে মঙ্গোদ্বের এক্স ফিউচারটি মঙ্গুজে নেই, তাই আপনি কাঁচা মংডোব ড্রাইভারের কাছে যান এবং কাঁচা মংডোব ক্যোয়ারী এক বা অন্য জায়গায় লিখুন। মঙ্গুজ ছাড়া আপনি মঙ্গোদব ডক্সের দিকে তাকান এবং আপনার ক্যোয়ারী করুন do


3
আমি আরও মনে করি যে মঙ্গোদব মঙ্গসের চেয়ে আরও ভাল কারণ এটি জটিল জিজ্ঞাসা করা দ্রুত এবং সম্ভব। এটি বড় অ্যাপগুলির পক্ষে ভাল এবং আপনার কাঁচা মংডোব ড্রাইভার ব্যবহার করা উচিত। আমি দৃ strongly়ভাবে আপনার সাথে একমত।
আবদুল আলীম শাকির

আপনি কোনও বড় অ্যাপ না করলেও আমি দৃ strongly়তার সাথে আপনার সাথে একমত। জটিল প্রশ্নগুলি মঙ্গুতে চালকদের তুলনায় মঙ্গো ড্রাইভারের তুলনায় অনেক সহজ
জুয়ান

14

আমি কেবল মঙ্গডব ব্যবহার করেছি। আমার ব্যক্তিগত মতামতে, আমি নিম্ন স্তরের কিছু দিয়ে শুরু করার এবং তারপরে এগিয়ে যাওয়ার পরামর্শ দেব। অন্যথায় আপনি মঙ্গুসের মতো উচ্চ স্তরের ড্রাইভারের দ্বারা সরবরাহিত অতিরিক্ত উন্নত বৈশিষ্ট্যগুলি ব্যবহার করে নিজেকে খুঁজে পেতে পারেন কোনও আসল উপকারের জন্য।

মংডোডব নিয়ে আমার যে সমস্যা হয়েছে তা হ'ল নোড.জেএস এর স্থানীয় সমস্যা হ'ল দুর্বল দলিল। এখানে ডকুমেন্টেশন এবং প্রচুর পরিমাণে রয়েছে তবে এটি সর্বদা সবচেয়ে সহায়ক হয় না isn't আমি এখনও অবধি দেখেছি যে ড্রাইভারের উত্পাদন ব্যবহারের কোনও ভাল এবং পুঙ্খানুপুঙ্খ উদাহরণ নেই। ডকুমেন্টেশন একই সংযোগ খুলুন, একটি আদেশ জারি করে এবং সংযোগটি বন্ধ করার অনুরূপ টেম্পলেটযুক্ত উদাহরণ দিয়ে পূর্ণ। আপনি এটি কোনও টেমপ্লেট থেকে অনুলিপি এবং আটকানো বলতে পারেন কারণ প্রতিটি উদাহরণে প্রতিটি উদাহরণের জন্য যা প্রয়োজন তার চেয়ে প্রয়োজনীয় সমস্ত কিছুর জন্য প্রয়োজনীয় উদাহরণ অন্তর্ভুক্ত রয়েছে।

এলোমেলোভাবে পুরোপুরি গৃহীত একটি উদাহরণ দেওয়ার জন্য:

  • কাঁচা {বুলিয়ান, ডিফল্ট: মিথ্যা}, কাঁচা বিসন বাফার ব্যবহার করে ক্রিয়াকলাপ সম্পাদন করে।

"কাঁচা বিসন বাফার ব্যবহার করে অপারেশনগুলি সম্পাদন করে" ঠিক কী করে? আমি এটি কোথাও ব্যাখ্যা করে দেখতে পাচ্ছি না এবং এই বাক্যাংশের জন্য একটি গুগল অনুসন্ধান কোনও লাভ করে না। সম্ভবত আমি আরও গুগল করতে পারে কিন্তু আমার করা উচিত হয়নি। তথ্য সেখানে থাকা উচিত। এই বিকল্পটি সক্ষম / অক্ষম করার জন্য কোনও কার্যকারিতা, স্থিতিশীলতা, অখণ্ডতা, সামঞ্জস্যতা, বহনযোগ্যতা বা কার্যকরী সুবিধা রয়েছে কি? কোডটিতে গভীরভাবে ডুব দেওয়া ছাড়া আমার সত্যিই ধারণা নেই এবং আপনি যদি আমার নৌকোতে থাকেন তবে এটি একটি গুরুতর সমস্যা। আমার একটি ডেমন রয়েছে যেখানে নিখুঁত অধ্যবসায়ের প্রয়োজন হয় না তবে রানটাইমে প্রোগ্রামটি খুব স্থিতিশীল হওয়া দরকার। আমি এর অর্থ ধরে নিতে পারি যে এটি আমার প্রত্যাশা করে যে আমি JSON- র ডিসিরিয়ালাইজ এবং সিরিয়ালাইজড করব বা ব্যবহারকারীর কাছে নিম্ন স্তরের, অভ্যন্তরীণ এবং স্বচ্ছ কিছু তবে আমি ভুল হতে পারি। যদিও আমি ভাল অনুমান করার প্রবণতা রাখি তবে গুরুত্বপূর্ণ সিস্টেমগুলি তৈরি করার সময় আমি অনুমান এবং অনুমানের উপর নির্ভর করতে পারি না। সুতরাং এখানে আমি কোডের সাথে আমার দাবিটি পরীক্ষা করতে পারি বা গুগল বা তাদের কোডের মধ্যে আরও গভীর খনন করতে পারি। এক হিসাবে এটি এতটা খারাপ নয় তবে তাদের ডকুমেন্টেশনগুলি পড়ার সময় আমি এই পরিস্থিতিতে আমার নিজেকে অনেকবার খুঁজে পাই। পার্থক্য বলতে বোঝায় যে কোনও কাজ বনাম ঘন্টা ব্যয় করা দিন। আমার নিশ্চয়তা প্রয়োজন এবং ডকুমেন্টেশনগুলি সবেমাত্র আমাকে ব্যাখ্যা দেয়, একাকী নিশ্চিতকরণ দিন।

ডকুমেন্টেশন তাড়াতাড়ি করা হয়। এটি ইভেন্টগুলি ব্যাখ্যা করে না, ত্রুটিগুলি কখন নিক্ষেপ করা হয় বা এই ত্রুটিগুলির প্রকৃতি সম্পর্কে অস্পষ্ট বিবরণ দেয় এবং সংযোগটি সম্পাদনের জন্য প্রায়শই বিভিন্ন উপায় রয়েছে যা অস্পষ্ট হতে পারে। আপনি এটি পেতে এবং এটি সম্পূর্ণরূপে অকেজো নয়, তবে এটি কিনারাগুলির খুব কাছাকাছি। আপনি কিছু জিনিস অনুমান এবং পরীক্ষা নিরীক্ষণ বাকি আছে দেখতে পাবেন।


দুর্দান্ত ডকুমেন্টেশন সহ দুর্দান্ত সফ্টওয়্যার আসে। এটি অন্যতম গুরুত্বপূর্ণ অঙ্গ।
লুকাস লিসিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.