डिफ़ॉल्ट के रूप में MongoDB खोल में सुंदर प्रिंट


516

वहाँ सुंदर प्रिंट उत्पादन करने के लिए Mongo बताने का एक तरीका है? वर्तमान में, सब कुछ एक पंक्ति में आउटपुट है और इसे पढ़ना मुश्किल है, विशेष रूप से नेस्टेड सरणियों और दस्तावेजों के साथ।


अब: आप इसे मानगो में लोड की गई बाहरी जावास्क्रिप्ट से कैसे प्रिंट करते हैं?
विटोल्ड काकज़ुरबा

@WitoldKaczurba अपने प्रश्न के उत्तर की खोज करने का प्रयास करें। यदि आपको कोई उत्तर नहीं मिलता है, तो आगे बढ़ें और इसे एक नए प्रश्न के रूप में पोस्ट करें।
एमफोरमार्नलन

जवाबों:


868

( नोट: यह प्रश्न के मूल संस्करण का उत्तर है, जिसमें "डिफ़ॉल्ट" के लिए आवश्यकताएं नहीं थीं )

आप इसे सुंदर होने के लिए कह सकते हैं।

db.collection.find().pretty()

18
यदि आप चाहते हैं उत्पादन colorized + अन्य संवर्द्धन की जाँच github.com/TylerBrock/mongo-hacker @SAFX
रयान शूमाकर

अब: आप इसे मानगो में लोड की गई बाहरी जावास्क्रिप्ट से कैसे प्रिंट करते हैं? यह काम नहीं करेगा ...
विटोल काकजुरबा

416

आप जोड़ सकते हो

DBQuery.prototype._prettyShell = true

$HOME/.mongorc.jsडिफ़ॉल्ट रूप से विश्व स्तर पर सुंदर प्रिंट को सक्षम करने के लिए आपकी फ़ाइल में ।


13
आप एक कस्टम फंक्शन बनाना चाहते हैं जो इसे आपके लिए निष्क्रिय कर दे। इसे अपने में जोड़ें $HOME/.mongorc.js: gist.github.com/mathrawka/6239405 फिर आप इसे सुंदर प्रिंट के बिना प्राप्त करने के लिए db.users.find () (बदसूरत) जैसे कुछ कर सकते हैं।
स्टैक्यूसर 2

5
+1 यह बहुत अच्छा है। उन लोगों के लिए जिनके पास $ HOME फ़ोल्डर में .mongorc.js फ़ाइल नहीं है; आप इस फ़ाइल को बना सकते हैं और इसमें कमांड जोड़ सकते हैं। शेल को पुनरारंभ करने के बाद, यह काम करता है!
previous_developer

मैं एक cli या mongo शेल में कैसे सत्यापित कर सकता हूं कि यह विकल्प सक्षम किया गया है? मेरा मतलब है, क्या इसके लिए एक विशेष कमान है, जैसे mongo --checkConf 'pretty', कॉल करके नहींdb.collection.find().limit(1)
ग्रीन

1
@ staackuser2, यह लिंक टूटा हुआ प्रतीत होता है :(
micseydel

यह स्वीकृत उत्तर होना चाहिए क्योंकि प्रश्न इस ओर इशारा करता है: इसे एक डिफ़ॉल्ट विकल्प कैसे बनाया जाए। उपयोगकर्ता पहले से ही .pretty () विधि से परिचित है, लेकिन हर बार इसे लिखना नहीं चाहता
एरियल मोनाको

54

(नोट: यह अद्यतन प्रश्न का उत्तर है)

आप इसे CLI पर कर सकते हैं:

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

और यह हमेशा सुंदर परिणाम का उत्पादन करने जा रहा है।


1
इसने मेरे लिए पूरी तरह से काम किया। | MongoDB शेल संस्करण: 2.6.7 और ओह-माय-जेडश संस्करण e55c715
tjfwalker

20

चूंकि यह मूल रूप से एक जावास्क्रिप्ट शेल है, आप इसका उपयोग भी कर सकते हैं toArray():

db.collection.find().toArray()

हालांकि, यह संग्रह के सभी दस्तावेजों को प्रिंट करेगा इसके विपरीत pretty()आपको पुनरावृति करने की अनुमति देगा। देखें: http://docs.mongodb.org/manual/reference/method/cursor.toArray/


2
दिलचस्प रूप से पर्याप्त है, कंसोल से .toArray()फ़ंक्शन आउटपुट को बेहतर .pretty()फ़ंक्शन से JSON स्वरूपित करता है। यानी: मेरे संग्रह का पहला रिकॉर्ड बाकी की तुलना में अलग है (जो समस्या हो सकती है), लेकिन .pretty()इसे बाहर के रूप में डंप करता है { "_id" : "VERSION", "v" : "1.5" }- सभी एक पंक्ति पर, जहां .toArray()इसे बाकी रिकॉर्डों की तरह अच्छा स्वरूपित किया गया है ..
wasatchwizard

17

ओह, तो मुझे लगता है। व्याख्या () के बराबर है:

db.collection.find().forEach(printjson);

8

मानगो-हैकर (नोड मॉड्यूल) के लिए एक कोशिश दे, यह बहुत सुंदर प्रिंट करता है। https://github.com/TylerBrock/mongo-hacker

अधिक यह मोंगो शेल को बढ़ाता है (केवल ver> 2.4, current ver 3.0 3.0 का समर्थन करता है), जैसे

  • colorization
  • अतिरिक्त शेल कमांड (गणना दस्तावेज़ / गिनती डॉक्स / आदि)
  • एपीआई अतिरिक्त (db.collection.find ({...})। अंतिम (), db.collection.find ({...})। उल्टा (), आदि।
  • एकत्रीकरण की रूपरेखा

मैं उत्पादन में env के लिए उपयोग कर रहा हूँ, अभी तक कोई समस्या नहीं है।


क्या होगा अगर मेरे पास मोंगोडब नहीं है, बस उल्का स्थापित किया गया है?
17 अक्टूबर को प्रयागगि

नोट: जब आप mpmo-hacker को npm का उपयोग करके स्थापित करते हैं, तो यह स्पष्ट रूप से ओवरराइट हो जाता है $HOME/.mongorc.js
हबरो

1

इस सवाल पर समझ गए लेकिन यह पता नहीं लगा सके कि इसे बाहरी रूप से लोड किए गए मोंगो से कैसे प्रिंट किया जाए। इसलिए:

यह कार्य कंसोल के लिए है: और कंसोल में पसंद किया जाता है, लेकिन बाहरी मानगो से भरी जावास्क्रिप्ट में काम नहीं करता है:

db.quizes.find().pretty()

यह बाहरी मैंगो लोडेड जावास्क्रिप्ट में काम करता है:

db.quizes.find().forEach(printjson)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.