মঙ্গয়েড নাকি মঙ্গোমাপ্পার? [বন্ধ]


83

আমি মঙ্গোপ্যাপার চেষ্টা করেছি এবং এটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত (প্রায় সমস্ত এআর কার্যকারিতা সরবরাহ করে) তবে বড় ডেটাসেট ব্যবহার করার সময় আমি পারফরম্যান্সে খুব খুশি ছিলাম না। কেউ কি মঙ্গয়েডের সাথে তুলনা করেছেন? কোন পারফরম্যান্স লাভ?

উত্তর:


49

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

তাদের কাছে মংগোআইডের তুলনায় তুলনামূলকভাবে তুলনামূলক অনুরোধ এবং বাগ / বৈশিষ্ট্য জমা দেওয়ার সংখ্যা কম রয়েছে, অর্থাৎ সম্প্রদায়ের অংশগ্রহণ অনেক কম। আমার মতো একই অভিজ্ঞতা?

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


আমি কি আপনাকে জিজ্ঞাসা করতে পারি, কোয়েরি বাস্তবায়নে বড় বাগটি কী ছিল। আমি আগের প্রকল্পে মঙ্গোম্যাপার ব্যবহার করেছি, তবে এটি মোটামুটিতে আমার প্রথম প্রকাশও ছিল। মঙ্গোম্যাপার সহ নির্দিষ্ট সমস্যা সম্পর্কিত কোনও তথ্য আপনার কাছে দুর্দান্ত। ধন্যবাদ
লাল

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

হাই, আপনি কীভাবে মঙ্গো ম্যাপার থেকে মঙ্গোডে সহজেই স্থানান্তর করতে পারেন সে সম্পর্কিত তথ্যের জন্য লিঙ্কটি পাঠাতে পারেন?
চেন কিন্নরোট

4
আয়নাট আমি এটিকে ঠিক করে দেইনি তবুও চেষ্টা করেছি এটি আমাকে একই ফল দিয়েছে
বীরেন

Godশ্বরের ধন্যবাদ আমি এই কথোপকথনটি কেবল আমার পরবর্তী বড় প্রকল্পে মঙ্গোম্যাপার বা মঙ্গোড ব্যবহার করার সিদ্ধান্ত নিয়েছে। অনুমান মঙ্গয়েড জেতা
aliirz

39

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

আমি মঙ্গয়েডের সাথে শেষ করলাম।


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

মঙ্গোমাপার-এর বহু থেকে বহু ভেঙে গেছে: github.com/jnunemaker/mongomapper/pull/259 , github.com/jnunemaker/mongomapper/issues/488 +1
ইয়েভগেনি

37

পার্থক্য

মঙ্গোমাপার

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

মঙ্গয়েড

  • উপাখ্যানক প্রমাণ দ্বারা মঙ্গোমাপ্পারের চেয়ে দ্রুত হওয়ার পরামর্শ দেওয়া হয়েছে।
  • এম্বেড থাকা নথির জন্য আরও দৃ support় সমর্থন, মংডোডিবি পারমাণবিক ক্রিয়াকলাপগুলি ($ সেট, $ পুশ, $ পুল, ইত্যাদি) ব্যবহার করে জায়গায় নেস্টেড ডকুমেন্টগুলি আপডেট করতে।
  • দ্বি-নির্দেশিক বহু-বহু-বহু সমিতিকে সমর্থন করে।
  • অনুসন্ধানের জন্য একটি শৃঙ্খলযোগ্য আর্লের মতো সিনট্যাক্স ব্যবহার করে।

সাদৃশ্য

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

কনফিগারেশন

মঙ্গোমাপার

defaults: &defaults
  host: 127.0.0.1
  port: 27017

development:
  database: database_name

মঙ্গয়েড

development:
  sessions:
    default:
      database: database_name
      hosts:
        - 127.0.0.1:27017

তৃতীয় পক্ষের গ্রন্থাগারসমূহ

উভয় পক্ষই তৃতীয় পক্ষের উন্নত সমর্থন পাওয়ার দাবি করেছে। গিথুব নিম্নলিখিতগুলি প্রকাশ করেছেন:

  • "মঙ্গয়েড" অনুসন্ধান করে 12671 ফলাফল পাওয়া যায়।
  • "মঙ্গোম্যাপার" অনুসন্ধান করে 4708 ফলাফল পাওয়া যায়।

উল্লেখযোগ্যভাবে, ডিভাইস মঙ্গোম্যাপার সমর্থন করে না।

ক্রিয়াকলাপ প্রতিশ্রুতিবদ্ধ

গত এক বছরে, দেখে মনে হচ্ছে মঙ্গোড মঙ্গোমাপ্পারের চেয়ে নিয়মিত রক্ষণাবেক্ষণ এবং আপডেট হয়েছে।

মঙ্গোমাপার

মঙ্গোমাপার

মঙ্গয়েড

মঙ্গয়েড


4
মঙ্গয়েড বর্তমানে পরিচয়ের মানচিত্রকে সমর্থন করে।
ব্যবহারকারী2503775

9

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

profile = Profile.find(params[:id])
label = profile.labels.find_or_create_by(idx: params[:idx])
# MongoMapper doesn't have find_or_create_by for embedded docs
# -- you'll have to write custom code
profile.save

অন save, মঙ্গোম্যাপার পুরো profileরেকর্ডটি সংরক্ষণ করবে , তবে মোংগোআইড $setকেবলমাত্র পরিবর্তিত লেবেলটি আপডেট করতে অবস্থানগত যুক্তিযুক্ত অপারেটরটি ব্যবহার করবে ।

অন্য সমস্যাটি কোন ক্ষেত্রগুলিতে ফিরে আসবে তা নির্বাচন করছে। উভয়ই একটি onlyমানদণ্ড সমর্থন করে , তবে মঙ্গয়েডও এটিকে সমর্থন করেwithout , যা মঙ্গো দ্বারা স্থানীয়ভাবে সমর্থিত।

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


7

আপনি কি মঙ্গো_েক্সট ইনস্টল করেছেন? আমি মনে করি পারফরম্যান্সটি ম্যাপারের নিজে থেকে ড্রাইভারের সাথে বেশি সম্পর্কিত। মঙ্গো লগতে তাকানোর সময়, আমি এক্সটেনশন ছাড়াই দেখতে পাচ্ছি, ট্রানজারটিতে কিছুটা ল্যাগ রয়েছে বলে মনে হচ্ছে।

তারা মনোগডিবির সাইটে যেমন পরামর্শ দেয় তেমনটি করুন, কেবলমাত্র আপনার প্রয়োজন ক্ষেত্রগুলি নির্বাচন করুন।


রুবি ড্রাইভার খুব দ্রুত বিশেষত 1.8 নয় তবে 1.9 কেবল পারফরম্যান্সকে বাড়িয়ে তোলে! আমি কেবল ভাবছি যে মঙ্গোডটি আরও অনুকূলিত হয়েছে বা একমাত্র জিনিসটি মঙ্গোম্যাপার হওয়ার জন্য ক্যোয়ারিং এবং স্টাফগুলির জন্য একটি ভিন্ন পদ্ধতির মধ্যে প্রায় সমস্ত এআর চিনির প্রায় পুরো অফার রয়েছে
PanosJee

4
এক বছর পরে এটি পড়ার জন্য দ্রষ্টব্য: mongo_extআর প্রয়োজন হয় না এবং এটি মৌলিক mongoরত্নে পরিণত হয়।
tkrajcar

4

গত সপ্তাহে মঙ্গোপ্যাপারের সাথে কিছু পরীক্ষা করা হয়েছিল, এটি স্থিতিশীল ছিল তবে আমি জিজ্ঞাসা ইন্টারফেসটি কিছুটা সীমাবদ্ধ পেয়েছি (এছাড়াও কিছু এআর যুক্তিটিও বিরল ছিল), আজ মঙ্গয়েডে স্যুইচ করা হয়েছে এবং এটি ব্যবহার করা আরও ভাল অনুভূত হয়েছে - এবং আপনি যদি ব্যবহার করেন তবে আরও স্বজ্ঞাত এআর

এখনও কোনও গতির উপসংহার নেই - তবে স্যুইচ ওভারটি বেদনাদায়ক ছিল - এটি রেল 3 এর সাথেও কাজ করে।


4

আপনি যদি রেল 3 ব্যবহার করছেন তবে আমি মঙ্গয়েডকে প্রস্তাব দিচ্ছি - এটি ক্লাস চালিয়ে যেতে উত্তরাধিকারের পরিবর্তে "অন্তর্ভুক্ত" "<" ব্যবহার করে - অধ্যবসায় যোগ করার জন্য রুবিতে "অন্তর্ভুক্ত" ব্যবহার করা আরও ভাল উদাহরণ। ডিঙ্গিসের সাথে মঙ্গয়েড আমার পক্ষে ভাল কাজ করে।

কর্মক্ষমতা উন্নত করতে নিম্ন স্তরের অ্যাক্সেসকে বেছে বেছে ব্যবহার করার চেষ্টা করুন, যেমন মোপড - আমি এটি 10x পর্যন্ত দ্রুত হতে দেখেছি


3

আমি তাদের উভয় ব্যবহার করেছি এবং তারা কার্যকারিতা সমান প্রায়, কিন্তু এটি কোড পরিসংখ্যান দেখুন মঙ্গয়েড বনাম মঙ্গোমাপ্পার

দেখে মনে হচ্ছে মোংগোপ্যাপারের কোডের মান আরও ভাল (যদি এটি কম দিয়ে একই রকম হয়)।

আপনি এই পরিসংখ্যানটি নিজের দ্বারা গণনা করতে পারেন, বিশ্লেষকটি এখানে https://github.com/alexeypetrushin/code_stats


12
মূল বিষয়: 'এটি যদি কম দিয়ে একই রকম হয়' ...
tkrajcar

10
এটি সম্পূর্ণ ভিত্তিহীন বলে মনে হচ্ছে।
জিম মিচিটনার

14
কোডের আকারের মাধ্যমে একটি প্রকল্পের কোড মানের তুলনা করা ওজন পরিমাপ করে 2 টি মানের মানের তুলনা করার মতো।
প্যাট্রিজিও রুলো

4
প্রকৃতপক্ষে গাড়ির ওজনের তুলনা করা পুরোপুরি বৈধ - আপনি অনেক বিচার করতে পারেন - এটি কতটা দ্রুত, কতটা পেট্রোল লাগে, ইত্যাদি। এবং, আসলে এটি বৈজ্ঞানিক দৃষ্টিকোণ থেকে বোঝা যায়, "কোলমোগোরভ জটিলতা" দেখুন।
অ্যালেক্স ক্রাফ্ট

4
এখনও, altough কিছু ব্যাপকভাবে mongomapper এর গতি (উন্নতি coffeepowered.net/2013/07/29/... ), এটা এখনও পরিচিত এবং স্বীকার করে নিয়েছিল যে mongoid দ্রুততর হয়।
অদিত সাক্সেনা

3

আমি মনে করি কনফিগারেশন এবং ম্যাপিংয়ে মঙ্গয়েড আরও ভাল।


4
আমিও তাই মনে করি. এ ছাড়া এটি মঙ্গোমাপ্পারের চেয়ে নোএসকিউএল-এর কাছাকাছি অনুভূত হয় যে এটি আপনাকে অ্যাক্টিভেকর্ড এবং অতএব এসকিউএল-এর ক্ষেত্রে আরও বেশি ভাবতে বাধ্য করে। আর একটি প্লাস হ'ল দুর্দান্ত ডকুমেন্টেশন
PanosJee

হ্যাঁ! ডকুমেন্টেশন সহ মংগয়েড ওয়েবসাইটের শিলা!
রদ্রিগোয়ালভেসির

0

আমি পারফরম্যান্সটি একই রকম প্রত্যাশা করবো, গতবার আমি মঙ্গোমাপ্পারকে পরীক্ষা করেছিলাম রেলস 3 সমর্থনটির অভাব রয়েছে - তাই আমি আপাতত মঙ্গয়েডের দিকে তাকাচ্ছি।


0

sudo gem install mongo_ext পারফরম্যান্স পাওয়ার মূল চাবিকাঠি।

মংগোডিবি কাঁচা গতির ক্ষেত্রে কাউচডিবিকে উড়িয়ে দিয়েছে - যদিও সিডিবির নিজস্ব সুবিধার একটি সেট রয়েছে।

বেঞ্চমার্ক: http://www.snailinaturtleneck.com/blog/?p=74


তিনি মঙ্গয়েড এক্স মঙ্গো_ম্যাপার সম্পর্কে কথা বলছেন, মঙ্গো অ্যাক্সেস করার জন্য দ্রুত রুবি রত্নটি কী, মঙ্গোদব এক্স কাউচডিবি নয়।
ভিক্টর রডরিগস

8
এক বছর পরে এটি পড়ার জন্য দ্রষ্টব্য: mongo_extআর প্রয়োজন হয় না এবং এটি মৌলিক mongoরত্নে পরিণত হয়।
tkrajcar

0

ডিভাইস মঙ্গোমাপারকে সমর্থন করেনি এবং আমিও রেল 3 পথে চলা পছন্দ করি। তাই আমি মঙ্গয়েডে স্যুইচ করেছি।


আমি মনে করি এমএম বর্তমানে এটি সমর্থন করে।
user2503775


0

আমি আশা করি নীচের পয়েন্টগুলিতে উপরের উত্তরে মান যুক্ত হবে।

1.মঙ্গোড সম্পূর্ণরূপে রেল 3 সামঞ্জস্যপূর্ণ এবং পুরো জায়গা জুড়ে অ্যাক্টিভোডেল ব্যবহার করে (বৈধকরণ, সিরিয়ালাইজেশন, ইত্যাদি), যেখানে মঙ্গোম্যাপার এখনও রেল 2 এর উপর দৃষ্টি নিবদ্ধ করে এবং তার বৈধতার জন্য বৈধতাযোগ্য রত্ন ব্যবহার করে।

2. মোঙ্গয়েড আনুষ্ঠানিকভাবে রুবি 1.8.7, 1.9.1 এবং 1.9.2 হেডে সমর্থন করে এবং কাজ করে।

৩.মঙ্গয়েড এম্বেডড ডকুমেন্টগুলিকে আরও দৃust়তার সাথে সমর্থন করে, অভ্যন্তরীণভাবে স্তরক্রমের যে কোনও অঞ্চলে মঙ্গোডিবি পারমাণবিক ক্রিয়াকলাপ সম্পাদন করে। ($ সেট, $ পুশ, $ পুল, ইত্যাদি)। এমএম সহ আপনার এই ক্রিয়াকলাপগুলি করার জন্য স্পষ্টভাবে এটি বলা দরকার।

৪.মঙ্গোম্যাপারের আরও ভাল সম্পর্কযুক্ত সহযোগিতা রয়েছে এবং এটি ডিফল্ট হিসাবে কাজ করে।

৫.মঙ্গোমাপ্পার আরও বর্ধিত, একটি প্লাগইন আর্কিটেকচার সহ যা এটি তাদের নিজস্ব লাইব্রেরি দিয়ে লোকেরা প্রসারিত করা বেশ সহজ করে তোলে। মঙ্গয়েডের এটি নেই।

MM.এমএম পরিচয় মানচিত্র সমর্থন করে, মঙ্গয়েড তা সমর্থন করে না।

MM.এমএম এর বৃহত্তর সম্প্রদায় রয়েছে এবং সম্ভবত তৃতীয় পক্ষের লাইব্রেরি সমর্থন রয়েছে। আমি ডকুমেন্টেশন এবং rdoc এ পাগল হয়ে গেলাম।

8.মঙ্গোড মাস্টার / স্লেভ রেপ্লিকেশন ক্লাস্টারগুলিকে সমর্থন করে। (মাস্টারকে লিখেছেন, গোলাকার রবিন দাসদের কাছে পড়ে) এমএম করে না।

9.মঙ্গোডের একটি অত্যন্ত সমৃদ্ধ আর্ল স্টাইলের মানদণ্ড এপিআই রয়েছে, এমএম এআর 2 শৈলী অনুসন্ধানকারী ব্যবহার করে।

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