सर्वर-साइड कोड निष्पादन के लिए शेल के कई सहायक कार्य उपलब्ध नहीं हैं। printShardingStatus()
. के मामले में , यह समझ में आता है क्योंकि प्रिंटिंग आउटपुट के लिए उपयोग करने के लिए कोई कंसोल नहीं है और आप एक स्ट्रिंग वापस करना चाहते हैं। शुक्र है, आपको शेल फ़ंक्शन के स्रोत को खींचने और इसे अपने एप्लिकेशन में फिर से लागू करने में सक्षम होना चाहिए (उदाहरण के लिए सीधे प्रिंट करने के बजाय एक लौटाई गई स्ट्रिंग को जोड़ना)।
$ mongo
MongoDB shell version: 2.2.0
connecting to: test
> db.printShardingStatus
function (verbose) {
printShardingStatus(this.getSiblingDB("config"), verbose);
}
तो, आइए देखें printShardingStatus()
समारोह...
> printShardingStatus
function (configDB, verbose) {
if (configDB === undefined) {
configDB = db.getSisterDB("config");
}
var version = configDB.getCollection("version").findOne();
// ...
}
सभी आउटपुट स्टेटमेंट को स्ट्रिंग कॉन्सटेनेशन में बदलने से पहले, आप यह सुनिश्चित करना चाहेंगे कि अन्य DB विधियाँ आपके लिए उपलब्ध हैं। प्रदर्शन-वार, मुझे लगता है कि सबसे अच्छा विकल्प इस फ़ंक्शन के अंदरूनी हिस्से को जावा में पोर्ट करना और सर्वर-साइड जेएस मूल्यांकन से पूरी तरह से बचना है। यदि आप printShardingStatus()
. में गहराई से उतरते हैं तो फ़ंक्शन, आप देखेंगे कि यह केवल जारी कर रहा है find()
कुछ group()
. के साथ config डेटाबेस पर प्रश्न।
यदि आप जेएस के मूल्यांकन के साथ रहना चाहते हैं और इस कोड को अपने जावा एप्लिकेशन में नहीं रखना चाहते हैं, तो आप JS फ़ंक्शन को सर्वर-साइड में संग्रहीत करना ।