2010-05-01 22 views
112

मैं एक node.js ऐप के साथ युग्मित करने के लिए डेटाबेस की तलाश में हूं। मुझे लगता है कि एक जेसन/नोस्कल डीबी एक रिलेशनल डीबी के लिए बेहतर होगा [मैं किसी भी जेसन/एसक्यूएल प्रतिबाधा विसंगति के बिना कर सकता हूं]। मैं विचार कर रहा हूँ:node.js डेटाबेस

  • CouchDB
  • MongoDB
  • redis

कोई भी किसी भी विचारों/युद्ध कहानियों फिर Node.js के साथ ऊपर की compatiability/deployability है? कोई स्पष्ट पसंदीदा?

+2

मुझे लगता है कि यदि व्यापक आवश्यकताओं का भी उल्लेख किया गया है तो सवाल का जवाब देना उपयोगी होगा। प्रत्येक डीबी के अपने पेशेवर, विपक्ष और विशेषता है। हमें चश्मा पता चलो! –

उत्तर

18

रेडिस एक लोकप्रिय विकल्प है। आप बाद में एक डेटाबेस ड्राइवर है जो ब्लॉक नहीं करता है।

आपके द्वारा सूचीबद्ध डेटाबेस सभी बहुत अलग हैं। रेडिस कुंजी-मूल्य स्टोरेज का विचार लेता है और इसके साथ चलता है, जिसमें विभिन्न प्रकार के डेटा प्रकार और डेटा पूछताछ के तरीके शामिल होते हैं। लोग अक्सर ध्यान देते हैं कि रेडिस भी बहुत अच्छी तरह से नीचे है; जिसका अर्थ है कि प्रदर्शन करने की क्षमता होने के बावजूद इसका बहुत कम ओवरहेड है। http://wiki.github.com/ry/node/modules#database

+0

हाँ रेडिस बहुत अच्छा है लेकिन ऐसा लगता है कि हम बाइनरी डेटा स्टोर कर सकते हैं लेकिन इसे पुनर्प्राप्त नहीं कर सकते! कम से कम मुझे बाइनरी डेटा के लिए कोई रेडिस कमांड नहीं मिला। – AppleGrew

+0

वास्तव में? मैं बाइनरी डेटा (नोड के बफर क्लास का उपयोग करके) स्टोर करता था और यह ठीक काम करता था। रेडिस/नोड का क्या संस्करण? – DanielS

+12

डिफ़ॉल्ट रूप से, node_redis सभी आदेशों के लिए जावास्क्रिप्ट तार वापस कर देगा। इसके बजाय बफर प्राप्त करने के लिए, createClient (पोर्ट, होस्ट, {return_buffers: true}) वाला क्लाइंट बनाएं; –

25

हालांकि अपनी पसंद बहुत ज्यादा सुविधाओं आप के लिए जा रहे हैं पर निर्भर करता है, मैं वास्तव में CouchDB अपने मूल जावास्क्रिप्ट पर्यावरण के लिए सराहना करते हैं:

यहाँ उपलब्ध डेटाबेस मॉड्यूल की एक सूची है। डेटा और विचार दोनों जावास्क्रिप्ट में लिखे गए हैं, इसलिए यह मेरी राय में node.js के लिए बहुत अच्छी तरह से फिट बैठता है।

अलग-अलग client libraries भी उपलब्ध हैं, कुछ कम स्तर हैं, अन्य वास्तव में बहुत ही सारणीबद्ध हैं।

लेकिन जैसा कि मैंने कहा, आपको अपने डेटाबेस के लिए आवश्यक सुविधाओं के बारे में भी सोचना चाहिए।

79

मैं node.js. के लिए mongodb ड्राइवर का डेवलपर हूं। मैं अपनी परियोजनाओं के लिए मोंगोडब का उपयोग कर रहा हूं और मोंगोडब के प्रदर्शन से बहुत खुश हूं।

Mongodb driver for node.js

(बेशर्म प्लग) Stackoverflow

पर

Google group for the mongodb driver

या यहां पर ड्राइवर के बारे में किसी भी सवाल पूछने के लिए स्वतंत्र

node.js. के साथ मज़े महसूस मैं बिल्कुल मंच से प्यार करता हूं: डी

+1

मोंगोज़ को भी देखें, जो कि काफी अच्छा ओआरएम है जो modeodb ड्राइवर के शीर्ष पर बनाता है/node.js – taxilian

+2

के लिए हम कुछ समय के लिए Node.js + MongoDB का उपयोग कर रहे हैं और यह बढ़िया जा रहा है और @ क्रिस्टकव को पूर्ण कुडोस, चालक रॉक ठोस है और आपको असफल नहीं करेगा।हमने आसानी से ईसी 2 पर node.js/express.js + mongodb तैनात किया है। साथ ही, ध्यान दें कि हम मोंगोस का उपयोग नहीं कर रहे हैं। चुनौतियों के बारे में बात करते हुए (माना जाता है कि आप नोड में पहले से ही अच्छे हैं), आपको किसी भी गंभीर आवेदन या सेवा विकास के लिए चीजें (पूछताछ और एकत्रीकरण) करने के मोंगो तरीके से अच्छा होना चाहिए। यह सीखना कि कैसे अन्य डीबी से मोंगो अलग है, वास्तव में आपको पहले चरण में होना चाहिए यदि आप अभी भी मूल्यांकन चरणों में हैं। –

+0

जो कुछ मैं समझता हूं उससे कुछ वास्तव में अच्छी विशेषताएं मोंगोडब में एकत्रीकरण को गति देने के लिए रेखा से नीचे आ रही हैं। उनमें से एक देशी एकत्रीकरण कार्य है। http://www.slideshare.net/cwestin63/mongodb-aggregation-mongosf-may-2011 और जावास्क्रिप्ट इंजन के लिए स्पाइडरमोनकी के बजाय v8 पर एक संभावित स्विच भी जो प्रत्येक मानचित्र-कमांड को चलाने के लिए अनुमति देगा यह स्वयं का धागा है (अलविदा अलविदा सिंगलथ्रेडेड मानचित्र-कम) – christkv

8

Persistence, node.js. के लिए उच्च स्तरीय दृढ़ता/डेटाबेस सिस्टम को देखना चाहता है।

thechangelog.com से

:

हठ डेटा बने के लिए एक उच्च स्तर एपीआई अनुमति देने के लिए के बीच प्रक्रिया चलाता है एक परियोजना है। लक्ष्य समर्थन बैकएंड का उपयोग करना आसान है, शक्तिशाली, लचीला, या यदि संभव हो तो सभी।

समर्थित डेटाबेस में शामिल हैं:

  • PostgreSQL - एक उद्यम स्तर रिलेशनल डेटाबेस। ड्राइवर शुद्ध जावास्क्रिप्ट में लागू किया गया है और PostgreSQL वायर प्रोटोकॉल का उपयोग कर टीसीपी पर संचार करता है।
  • एसक्लाइट 3 - एक सरल, तेज़, सर्वर-कम संबंध डेटाबेस। यह ड्राइवर कमांड लाइन sqlite3 प्रोग्राम के आसपास एक रैपर है। इसके लिए sqlite3 को पथ में होना आवश्यक है। संचार बेहद तेज़ है, लेकिन प्रकार सटीक नहीं हैं। केवल स्ट्रिंग्स हैं और नल लौट आए हैं।
  • मोंगोडीबी - ए स्केलेबल, उच्च-प्रदर्शन, खुला स्रोत, स्कीमा-मुक्त, दस्तावेज़-उन्मुख डेटाबेस। यह चालक जावास्क्रिप्ट में वायर प्रोटोकॉल और को टीसीपी पर सर्वर के साथ संचारित करता है।
  • JSON-DB - एक होमग्राउन सिस्टम स्कीमा-फ्री, दस्तावेज़-उन्मुख डेटाबेस जो साधारण फ्लैट फ़ाइलों का उपयोग करता है जिसमें JSON ऑब्जेक्ट्स शामिल हैं। इसमें नोड और फाइल सिस्टम को छोड़कर आवश्यकताएं नहीं हैं। प्रदर्शन होना चाहिए जब इसे पूरी तरह लागू किया गया हो।
+13

दृढ़ता मार्च 2010 से अपडेट नहीं की गई है और रिलीज 0.0.4 पर है, इसलिए ऐसा लगता है कि इसे छोड़ दिया गया हो सकता है। – lacker

5

अस्वीकरण: मैं लेखक हूं।

शायद BarricaneDB पर here की घोषणा की गई है।

15

मुझे वास्तव में कॉच डीबी पसंद है। यह एक सीखने की अवस्था का थोड़ा सा है, लेकिन विचारों को समझने के बाद विचार वास्तव में शक्तिशाली होते हैं। cradle on github और एनपीएम नामक एक मॉड्यूल है जो काम करना वास्तव में आसान है। मैं यह जांचने में सक्षम नहीं हूं कि यह कितना तेज़ है, लेकिन यह वास्तव में लचीला है (यदि आप चाहें तो ब्राउज़र में भी अपने डेटा तक पहुंच सकते हैं)।

यहां प्रमुख मुद्दा यह है कि डेटाबेस डिज़ाइन आपके एप्लिकेशन के लिए समझ में आता है। क्या आपके पास डेटा है जो प्रकृति में मुख्य रूप से महत्वपूर्ण मूल्य है? यदि ऐसा है, तो रेडिस का उपयोग करें। क्या आपके पास डेटा है जहां सभी दस्तावेजों के पास समान फ़ील्ड नहीं हैं? यदि ऐसा है, तो CouchDB जैसे NoSQL डेटाबेस का उपयोग करें।

अवरुद्ध डेटाबेस का उपयोग करने के लिए अगली बदतर बात आपके डेटा के लिए गलत डेटाबेस का उपयोग कर रही है। कोच डीबी को अपाचे द्वारा प्रबंधित किया जाता है, इसलिए आप जानते हैं कि यह अच्छी गुणवत्ता है, लेकिन इसका उपयोग करने के लिए यह समझ में नहीं आता है कि यदि आपका डेटा किसी SQL तालिका या एक साधारण कुंजी-मूल्य स्टोर में अधिक समझ में आता है।

अपने उपयोग के मामले के बारे में सोचें। क्या आप पूर्ण-पाठ खोज करना चाहते हैं, बस कुंजी से डेटा प्राप्त करें, या ऐसे गुणों की श्रेणियां प्राप्त करें जिनके समान गुण हैं?

3

मुझे यकीन नहीं है कि सही समाधान केवल आपके वेब स्टैक पर डेटाबेस मैप करने पर ध्यान केंद्रित करना है, बल्कि एप्लिकेशन-विशिष्ट आवश्यकताओं पर भी विचार करना है।

क्या आप पैटर्न के लिए ट्विटर फ़ीड या अन्य उच्च मात्रा वाले डेटा का विश्लेषण कर रहे हैं, लेकिन लेनदेन संबंधी समर्थन की आवश्यकता नहीं है? फिर कुछ वास्तव में तेज़ी से उठाओ।

आप बस कुछ तालिकाओं में वास्तव में कुछ बुनियादी जानकारी संग्रहीत करना चाहते हैं और इसके वर्तमान में नहीं कोई एप्लिकेशन "उद्यम ध्यान केंद्रित" है?फिर सीखने के लिए कुछ अच्छा चुनें।

हो सकता है कि आप डेटा को स्टोर करने जा रहे हैं जो वास्तव में एक ग्राहक के लिए महत्वपूर्ण है, मजबूत, लेनदेन करने की आवश्यकता है, और दूरस्थ होस्टिंग सुविधाओं आदि के लिए लाइव प्रतिकृति है। तो शायद postgresql की तरह कुछ देखें। यह भी दर्पण नहीं करेगा, लेकिन node.js ड्राइवर बहुत अच्छी तरह से काम करता है और यदि आप एसक्यूएल से डरते नहीं हैं तो यह आपको आसानी से बाहर/बाहर लेना चाहता है।

अपने ही राय का सवाल है, मैं Node.js जैसा अधिक नया स्टैक (php/जावा में पारंपरिक चौखटे बनाम) के साथ जा रहा लगता है कि पर्याप्त 'नई' जटिलता है कि एक अतिरिक्त परतें सभी को एक बार नहीं जोड़ना चाहिए जोड़ने है।

http://nodeguide.com/convincing_the_boss.html

1

गंदा अभी तक एक फ्लैट फ़ाइल कुंजी-मान की दुकान है: यह एक अच्छा लेख है कि चर्चा करता है। जैसा कि नाम से पता चलता है, यह सरल मामलों के लिए एक त्वरित और गंदे लेकिन प्रदर्शनकारी समाधान है। मैं लेखक :)

1

कुछ और विचार करने के लिए नहीं कर रहा हूँ:

वैश्विक: http://globalsdb.org

GT.M (एक प्रारंभिक बिंदु के लिए https://github.com/robtweed/node-mwire देखें)

एम/डीबी (एक खुला स्रोत SimpleDB का क्लोन): https://github.com/robtweed/node-mdb और आप इसे उपयोग करने Node.js SimpleDB ग्राहक का उपयोग कर सकते हैं: https://github.com/rjrodger/simpledb

2

मैं अपने अनुभव से बात करेंगे: CouchDB जबकि एम, एक निश्चित सीखने की अवस्था के साथ आता है ओएनजीडीबी मुझे सीखना और स्थापित करना बहुत आसान लगता है। मैंने कभी लाल रंग का उपयोग नहीं किया है। मैं मोंगोडीबी का सुझाव देता हूं - लेकिन वह शायद लापरवाही fanboyism - मेरे पास कोई संख्या नहीं है, हे, केवल उपयोग की आसानी का दावा है।

0

मुझे CouchDB मास्टर के लिए बहुत आसान मिला। इंटरनेट पर बहुत सी ईबुक उपलब्ध हैं जो आपको सिखाएंगे कि Node.js के साथ कॉच डीबी का उपयोग कैसे करें।

मुझे this book कोचचबी सीखने के लिए बहुत उपयोगी मिला।

नोड.जेएस के साथ कॉच डीबी का उपयोग करने के लिए, मैं NANO मॉड्यूल का उपयोग करता हूं।

CouchDB या तो Iriscouch या Cloudant पर होस्ट किया जा सकता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^