शेल कुछ अच्छी लेकिन छिपी हुई विशेषताएं प्रदान करता है क्योंकि यह एक इंटरैक्टिव वातावरण है।
जब आप जावास्क्रिप्ट फ़ाइल से mongo command.js के माध्यम से कमांड चलाते हैं तो आपको बिल्कुल समान व्यवहार नहीं मिलेगा।
इसके दो तरीके हैं।
(1) शेल को नकली बनाएं और यह सोचें कि आप इंटरैक्टिव मोड में हैं
$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF
या
(2) find()
. के परिणाम का अनुवाद करने के लिए Javascript का उपयोग करें एक प्रिंट करने योग्य JSON
mongo dbname command.js > output.json
जहां कमांड.जेएस में यह (या इसके समकक्ष) शामिल है:
printjson( db.collection.find().toArray() )
यह [ ]
. सहित परिणामों की सरणी को सुंदर रूप से प्रिंट करेगा - यदि आप नहीं चाहते हैं कि आप सरणी पर पुनरावृति कर सकें और printjson()
प्रत्येक तत्व।
वैसे अगर आप सिर्फ एक जावास्क्रिप्ट स्टेटमेंट चला रहे हैं तो आपको इसे एक फाइल में डालने की जरूरत नहीं है और इसके बजाय आप इसका उपयोग कर सकते हैं:
$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json