इसलिए मैंने उस उत्तर के लिए मतदान किया, जिसमें कहा गया था कि मैं सिर्फ mongodb 2.2.33 पर जाऊं क्योंकि मैंने इसे आजमाया और यह काम कर गया, लेकिन फिर मुझे एक समस्या को ठीक करने के लिए सिर्फ डाउनग्रेड करने के बारे में अजीब लगा, इसलिए मुझे वह समाधान मिला जो आपको संस्करण रखने की अनुमति देता है> =3.0. अगर किसी को यह समस्या मिलती है और उनकी समस्या स्वीकृत उत्तर की तरह रिक्त संदर्भ में नहीं जा रही थी, तो इस समाधान को आजमाएं।
जब आप दौड़ते हैं..
MongoClient.connect(db.url,(err,database) =>{ }
मोंगोडब संस्करण>=3.0 में, वह database
वेरिएबल वास्तव में उस ऑब्जेक्ट की मूल वस्तु है जिसे आप database.collection('whatever')
के साथ एक्सेस करने का प्रयास कर रहे हैं। . सही ऑब्जेक्ट तक पहुंचने के लिए, आपको अपने डेटाबेस नाम का संदर्भ देना होगा, मेरे लिए जो कर रहा था
MongoClient.connect(db.url,(err,database) =>{
const myAwesomeDB = database.db('myDatabaseNameAsAString')
myAwesomeDB.collection('theCollectionIwantToAccess')
}
इसने मेरे नोड.जेएस सर्वर को चलाते समय मेरी त्रुटियों को ठीक किया, उम्मीद है कि इससे किसी ऐसे व्यक्ति को मदद मिलेगी जो अपने संस्करण को डाउनग्रेड नहीं करना चाहता।
(साथ ही, यदि आप किसी कारण से अपना डीबी नाम नहीं जानते हैं, तो बस एक कंसोल.लॉग (डेटाबेस) करें और आप इसे ऑब्जेक्ट एट्रिब्यूट के रूप में देखेंगे)
संपादित करें (जून 2018):
इसके अनुसार, कॉलबैक वास्तव में डेटाबेस के बजाय डेटाबेस के कनेक्टेड क्लाइंट को लौटाता है।
इसलिए, डेटाबेस इंस्टेंस प्राप्त करने के लिए, हमें इस पद्धति का उपयोग करने की आवश्यकता है, जो एक dbName
. लेता है . दस्तावेज़ीकरण में यह कहा गया है If not provided, use database name from connection string.
, जैसा कि नीचे दी गई टिप्पणियों में @divillysausages द्वारा बताया गया है।
संक्षेप में, हमें database.db().collection('theCollectionIwantToAccess');
को कॉल करना चाहिए। यदि dbName url द्वारा प्रदान किया जाता है, जहाँ database
वास्तव में client
है बेहतर समझ के लिए