परिचय
Watch स्क्रीन को खोलने, उपयोग करने और सत्यापित करने में आपकी सहायता के लिए चरण-दर-चरण मार्गदर्शिका — NoSqlStudio में अंतर्निहित लाइव change-stream मॉनिटर। Step 1 से अंत तक क्रम में चलें। प्रत्येक स्टेप आपको बताता है कि क्या करना है और आप क्या देखेंगे।
इस मैनुअल को कैसे पढ़ें
प्रत्येक स्टेप में होता है:
- करें — सटीक क्रिया (क्लिक करें, टाइप करें, अमुक कमांड चलाएँ)।
- देखें — स्क्रीन पर क्या होना चाहिए। यह आपका “पास / फ़ेल” है।
- क्यों — अतिरिक्त संदर्भ, केवल तब जब यह सहायक हो (यदि जल्दी में हैं तो छोड़ दें)।
शुरू करने से पहले
अवधारणा
Watch क्या है
Watch आपके डेटाबेस में होने वाली प्रत्येक insert, update, delete और अन्य परिवर्तनों को वास्तविक समय में दिखाता है, कार्ड्स के रूप में जो एक टाइमलाइन में स्लाइड होते हैं। यह MongoDB change streams पर आधारित है।
ध्यान दें
Watch के लिए एक replica set आवश्यक है
Change streams एक replica set सुविधा है। Watch MongoDB Atlas क्लस्टर्स और self-hosted replica sets के साथ कार्य करता है, लेकिन एक standalone सर्वर के साथ नहीं। Watch को एक standalone सर्वर पर निर्देशित करने को Step 30 में कवर किया गया है।
आपको चाहिए:
- 1एक कनेक्टेड MongoDB replica set — एक Atlas क्लस्टर या एक self-hosted replica set।
- 2एक दूसरी टैब जहाँ आप शेल कमांड चला सकें — Scratchpad या Mongo Shell टैब — परिवर्तन उत्पन्न करने के लिए।
- 3नीचे दिए गए शेल कमांड्स में,
<database>और<collection>को अपने स्वयं के नामों से बदलें। हमेशा पहलेuse <database>चलाएँ ताकि कमांड सही डेटाबेस पर निष्पादित हो।
पूरे walkthrough के लिए अनुमानित समय: ~20 मिनट।
आपका पहला निगरानी किया गया परिवर्तन
Watch खोलें और पुष्टि करें कि एक एकल परिवर्तन टाइमलाइन तक पहुँचता है।
एक replica set से कनेक्ट करें
NoSqlStudio को एक MongoDB replica set या Atlas क्लस्टर से कनेक्ट करें, अपनी connection string का उपयोग करते हुए — उदाहरण के लिए mongodb+srv://<user>:<password>@<cluster-host>/।
कनेक्शन खुलता है और साइडबार में दिखाई देता है।
Watch Deployment खोलें
टूलबार में, Monitoring ▼ → Watch for Changes → Watch Deployment चुनें।
एक नई टैब खुलती है जिसमें एक 🎥 शीर्षक, एक हरी स्पंदित LIVE स्थिति पील और क्लस्टर का एक मिनी-मैप होता है जो PRIMARY नोड को उसके secondaries के बगल में हरे रंग में दिखाता है।
एक परीक्षण डॉक्यूमेंट सम्मिलित करें
किसी अन्य टैब (Scratchpad) में, एक डेटाबेस चुनें और एक डॉक्यूमेंट सम्मिलित करें। पहले use कमांड चलाएँ:
use <database>
db.test_cw.insertOne({ hello: "test1", n: 1 })परिवर्तन को आते देखें
Watch टैब पर वापस जाएँ।
लगभग एक सेकंड के भीतर, <database>.test_cw के लिए एक हरा 🟢 Insert कार्ड टाइमलाइन के शीर्ष पर स्लाइड होता है।
यह टूल का मूल है — लाइव स्ट्रीम कनेक्टेड है और परिवर्तन वितरित कर रही है। ✅
फ़िल्टर और एक्सपोर्ट
कई कलेक्शन्स में ट्रैफ़िक उत्पन्न करें
विभिन्न कलेक्शन्स में कुछ inserts चलाएँ:
use <database>
db.orders.insertOne({ item: "book" })
db.users.insertOne({ name: "Ana" })
db.test_cw.insertOne({ n: 1 })प्रत्येक insert के लिए एक कार्ड स्लाइड होता है।
टाइमलाइन को फ़िल्टर करें
शीर्षक में 🔍 filter फ़ील्ड में एक कलेक्शन का नाम (उदाहरण के लिए orders) टाइप करें।
केवल वे इवेंट्स दिखाई देते रहते हैं जिनका namespace उस टेक्स्ट से मेल खाता है। फिर से सब कुछ दिखाने के लिए फ़ील्ड को साफ़ करें।
इवेंट्स को एक्सपोर्ट करें
फ़िल्टर साफ़ करके, 📥 Export पर क्लिक करें।
दिखाई देने वाले इवेंट्स आपके Downloads फ़ोल्डर में एक .ndjson फ़ाइल के रूप में सहेजे जाते हैं।
अवधारणा
NDJSON. प्रति पंक्ति एक JSON डॉक्यूमेंट — इवेंट्स की एक स्ट्रीम के लिए स्वाभाविक प्रारूप, फिर से इम्पोर्ट करना या grep करना आसान।
रिकॉर्डिंग और रीप्ले
एक रिकॉर्डिंग प्रारंभ करें
दाएँ हाथ के पैनल में, 🎬 Recording कार्ड खोजें और टॉगल को चालू करें।
कार्ड रिकॉर्डिंग स्थिति में बदल जाता है।
रिकॉर्डिंग के दौरान इवेंट्स उत्पन्न करें
किसी अन्य टैब में कुछ परिवर्तन चलाएँ:
use <database>
db.test_cw.insertOne({ n: 1 })
db.test_cw.insertOne({ n: 2 })
db.test_cw.insertOne({ n: 3 })कार्ड एक लाइव काउंटर दिखाता है, जैसे recording • 3 events।
रिकॉर्डिंग बंद करें
🎬 Recording टॉगल बंद करें।
रिकॉर्डिंग स्वतः एक .ndjson फ़ाइल के रूप में डाउनलोड हो जाती है।
एक फ़ाइल से रिकॉर्डिंग चलाएँ
📂 Open recording पर क्लिक करें और अभी सहेजी गई .ndjson फ़ाइल चुनें।
शीर्षक को एक बैंगनी 📂 replay (file) बैज मिलता है और रिकॉर्ड किए गए इवेंट्स टाइमलाइन में लौट आते हैं।
रीप्ले मोड से बाहर निकलें
बैंगनी replay बैज पर ✕ क्लिक करें।
रीप्ले मोड समाप्त होता है और लाइव स्ट्रीम फिर से शुरू होती है।
हाल के अतीत को चलाएँ
⏪ Replay कार्ड में, Go back 5 minutes पर क्लिक करें।
स्ट्रीम अतीत में कुछ मिनट पहले से फिर से खुलती है, जिससे आप पहले हो चुके परिवर्तनों को देख सकते हैं।
ध्यान दें
यह केवल तब काम करता है जब क्लस्टर का oplog अभी भी उतना इतिहास रखता है। एक व्यस्त क्लस्टर पर oplog विंडो 5 मिनट से कम हो सकती है।
Webhooks और अलर्ट्स
Watch परिवर्तनों को एक बाहरी URL पर अग्रेषित कर सकता है और एक नियम के आधार पर डेस्कटॉप अलर्ट उठा सकता है।
एक परीक्षण webhook URL प्राप्त करें
अपने ब्राउज़र में https://webhook.site खोलें और वह अद्वितीय URL कॉपी करें जो वह आपको देती है (फ़ॉर्मेट https://webhook.site/<uuid>)।
webhook जोड़ें
📡 Webhooks कार्ड में, URL पेस्ट करें और + Add पर क्लिक करें।
webhook सूची में दिखाई देता है।
webhook को कॉन्फ़िगर करें
webhook की सेटिंग्स विस्तारित करने के लिए उस पर ⚙ क्लिक करें। HTTP विधि को PUT में बदलें, मान Bearer xxx के साथ एक Authorization हेडर जोड़ें, और इवेंट चिप्स में केवल 🔴 Delete चुनें।
webhook अब आपके हेडर के साथ एक PUT अनुरोध के रूप में, केवल deletes पर ट्रिगर होने के लिए सेट है।
Insert — कुछ भी अग्रेषित नहीं होता
एक insert चलाएँ:
use <database>
db.test_cw.insertOne({ foo: 1 })webhook.site को कुछ नहीं मिलता — webhook केवल deletes के लिए फ़िल्टर्ड है।
Delete — webhook ट्रिगर होता है
एक delete चलाएँ:
use <database>
db.test_cw.deleteOne({ foo: 1 })webhook.site को Authorization: Bearer xxx हेडर के साथ एक PUT अनुरोध मिलता है, बॉडी में परिवर्तन इवेंट EJSON के रूप में होता है। कार्ड ✓ 1 sent दिखाता है।
एक अलर्ट बनाएँ
🔔 Alerts कार्ड में, अलर्ट को एक नाम दें (उदाहरण के लिए Deleted test), namespace पैटर्न को एक नियमित अभिव्यक्ति के रूप में सेट करें — ^.*\.test_cw$ — और + Create alert पर क्लिक करें।
अलर्ट सूची में दिखाई देता है।
अलर्ट को संकीर्ण करें
अलर्ट पर ⚙ क्लिक करें और, इवेंट चिप्स में, केवल 🔴 Delete चुनें।
अलर्ट अब केवल उन deletes पर ट्रिगर होगा जो पैटर्न से मेल खाते हैं।
अलर्ट ट्रिगर करें
एक और delete चलाएँ:
use <database>
db.test_cw.deleteOne({ n: 1 })पहली बार, सिस्टम अधिसूचना अनुमति माँगता है — एक बार अनुमति दें। फिर एक नेटिव डेस्कटॉप अधिसूचना दिखती है, एक ध्वनि बजती है, और अलर्ट इतिहास हिट को रिकॉर्ड करता है।
अवधारणा
अलर्ट्स के कार्य करने के लिए रिकॉर्डिंग का चालू होना आवश्यक नहीं है — अलर्ट्स का मूल्यांकन स्वतंत्र रूप से होता है, और उनका इतिहास अपने आप रखा जाता है।
ध्वनि और क्लस्टर मिनी-मैप
ध्वनि चालू करें
शीर्षक में, 🔔 Sound off पर क्लिक करें ताकि वह Sound on बन जाए।
एक insert सुनें
एक insert चलाएँ:
use <database>
db.test_cw.insertOne({ n: 10 })एक छोटा उच्च बीप बजता है।
एक delete सुनें
एक delete चलाएँ:
use <database>
db.test_cw.deleteOne({ n: 10 })एक निम्न बीप बजता है — insert से अलग स्वर, ताकि आप कान से परिवर्तनों को अलग कर सकें।
मिनी-मैप को स्पंदित होते देखें
क्लस्टर मिनी-मैप में, हरा PRIMARY नोड हर बार एक इवेंट आने पर एक विस्तृत होते वलय के साथ स्पंदित होता है।
व्यवहार और सीमावर्ती मामले
स्थायित्व
Watch टैब बंद करें (टैब शीर्षक पर ✕) और मेनू से इसे फिर से खोलें।
आपके webhooks, अलर्ट्स, ध्वनि सेटिंग और बफ़र आकार सब अभी भी मौजूद हैं।
डेटाबेस सूची रिफ़्रेश करें
किसी अन्य टैब में एक नया डेटाबेस बनाएँ, फिर Watch शीर्षक में 🔄 Refresh पर क्लिक करें।
नया डेटाबेस scope ड्रॉपडाउन में दिखाई देता है।
बफ़र आकार
शीर्षक में Buffer फ़ील्ड में 50 टाइप करें।
केवल 50 सबसे हालिया इवेंट्स दिखाई देते रहते हैं — पुराने कार्ड्स गायब हो जाते हैं।
scope परिवर्तन पर साफ़ करना
🌐 Cluster scope पर एक स्ट्रीम चलते हुए, 🗄 एकल डेटाबेस पर स्विच करें।
टाइमलाइन साफ़ हो जाती है और नए scope के लिए स्ट्रीम पुनः प्रारंभ होती है।
एक standalone पर मानवीकृत त्रुटि
एक standalone MongoDB सर्वर (replica set नहीं) से कनेक्ट करें और Watch Deployment आज़माएँ।
एक स्पष्ट, मित्रवत संदेश समझाता है कि Watch के लिए एक replica set आवश्यक है — “$changeStream stage is only supported…” जैसी कच्ची सर्वर त्रुटि नहीं।
नेटिव Tools मेनू
Tools मेनू से Watch खोलें
नेटिव मेनू का उपयोग करें: Tools → Change Watcher → Watch Deployment (कीबोर्ड शॉर्टकट Ctrl+Alt+W)।
Watch टैब खुलता है, बिल्कुल टूलबार से खुलने जैसा।
ध्यान दें
नेटिव मेनू तब बनता है जब ऐप शुरू होता है। एक in-app reload (Ctrl+R) के बाद मेनू पुराना रह सकता है — मेनू परिवर्तन देखने के लिए NoSqlStudio को पूर्ण रूप से पुनः प्रारंभ करें।
सफ़ाई (जब आप पूरा कर लें)
शीर्षक में Stop बटन से स्ट्रीम रोकें, फिर परीक्षण कलेक्शन को छोड़ें:
use <database>
db.test_cw.drop()स्ट्रीम रुक जाती है और परीक्षण कलेक्शन समाप्त हो जाता है।
आपने जो सत्यापित किया उसका सारांश
| चरण | सुविधा |
|---|---|
| 1 | Watch खोलें और एक लाइव परिवर्तन को टाइमलाइन तक पहुँचते देखें |
| 2 | टाइमलाइन फ़िल्टर करें और इवेंट्स को NDJSON के रूप में एक्सपोर्ट करें |
| 3 | इवेंट्स रिकॉर्ड करें, एक फ़ाइल से रीप्ले करें, और हाल के अतीत को रीप्ले करें |
| 4 | Webhooks (विधि, हेडर्स, इवेंट फ़िल्टर) और डेस्कटॉप अलर्ट्स |
| 5 | प्रति इवेंट प्रकार ध्वनि संकेत और क्लस्टर मिनी-मैप का स्पंदन |
| 6 | स्थायित्व, refresh, बफ़र, scope परिवर्तन पर सफ़ाई, मानवीकृत त्रुटियाँ |
| 7 | नेटिव Tools मेनू प्रविष्टि और उसका शॉर्टकट |