मुझे उम्मीद है कि निम्नलिखित उल्का और मोंगो के बीच संबंधों की बेहतर समझ प्रदान करते हैं।
अधिक आराम के लिए उल्का संग्रह
उल्का आपको पूर्ण मोंगो कार्यक्षमता प्रदान करता है। हालांकि आराम के लिए यह एक लिपटे एपीआई प्रदान करता है एक मोंगो संग्रह का जो उल्का पर्यावरण के साथ सबसे अच्छा एकीकृत करता है। तो अगर आप के माध्यम से Mongo आयात करते हैं
import { Mongo } from 'meteor/mongo'
आप मुख्य रूप से लपेटा हुआ मोंगो संग्रह आयात करते हैं जहां संचालन उल्का फाइबर में निष्पादित होते हैं। इन लपेटे हुए संग्रहों के प्रश्नों द्वारा लौटाए गए कर्सर भी "प्राकृतिक" कर्सर नहीं हैं बल्कि लिपटे कर्सर उल्का अनुकूलित होने के लिए।
अगर आप इन इंस्टेंस पर किसी नेटिव फीचर को एक्सेस करने का प्रयास करते हैं जो लागू नहीं किया गया है तो आपको एक त्रुटि प्राप्त होगी। आपके मामले में:
import { Meteor } from 'meteor/meteor';
import { Random } from 'meteor/random';
const ExampleCollection = new Mongo.Collection('examples')
Meteor.startup(() => {
// code to run on server at startup
ExampleCollection.insert({ value: Random.id() })
const docsCursor = ExampleCollection.find();
docsCursor.readPref('primary')
});
की ओर जाता है
TypeError: docsCursor.readPref is not a function
नोड मोंगो ड्राइवर संग्रह तक पहुंचना
अच्छी खबर यह है, आप नीचे की परत तक पहुंच सकते हैं
के माध्यम से collection.rawCollection()
जहां आपके पास नोड मोंगो ड्राइवर तक पूर्ण पहुंच है। ऐसा इसलिए है क्योंकि हुड उल्का के Mongo.Collection
. के तहत है और यह Cursor
है अंत में इस मूल ड्राइवर का उपयोग कर रहे हैं।
अब आपको दो अन्य मुद्दे मिलेंगे:
-
readPref
एक नोड-मोंगो कर्सर में नामित किया गया है cursor.setReadPreference (3.1 एपीआई)। -
Cursor.fetch
मौजूद नहीं है लेकिन नाम दिया गया हैcursor.toArray
जो (जितने देशी ऑपरेशन करते हैं) एक वादा लौटाता है
तो अंत में आपके प्रश्न का उत्तर देने के लिए
आप निम्न कार्य कर सकते हैं:
import { Meteor } from 'meteor/meteor';
import { Random } from 'meteor/random';
const ExampleCollection = new Mongo.Collection('examples')
Meteor.startup(() => {
// code to run on server at startup
ExampleCollection.insert({ value: Random.id() })
const docsCursor = ExampleCollection.rawCollection().find();
docsCursor.setReadPreference('primary')
docsCursor.toArray().then((docs) => {
console.log(docs)
}).catch((err)=> console.error(err))
});
सारांश
-
collection.rawCollection()
. का उपयोग करके आपके पास नोड mongo ड्राइवर APIके पूर्ण स्पेक्ट्रम तक पहुंच है। ए> -
आप अपने वातावरण में संचालन, कर्सर और परिणाम (वादे) को एकीकृत करने के लिए अपने दम पर हैं। अच्छे सहायक हैं Meteor.bindEnvironment और Meteor.wrapAsync
-
नोड-मोंगो ड्राइवर के एपीआई परिवर्तनों से सावधान रहें। एक ओर मोंगो संस्करण जो चालक द्वारा समर्थित है, दूसरी ओर चालक संस्करण जो उल्का द्वारा समर्थित है।
-
ध्यान दें कि देशी एपीआई के साथ चीजों को "गड़बड़" करना आसान है लेकिन यह आपको बहुत सारे नए विकल्प भी देता है। सावधानी से प्रयोग करें।