सामग्री पर जाएँ
दस्तावेज़

परीक्षण मैनुअल — NoSqlStudio Watch

Watch लाइव change-stream स्क्रीन को खोलने, उपयोग करने और सत्यापित करने के लिए चरण-दर-चरण मार्गदर्शिका।

अनुमानित समय: ~20 मिनट
इस मैनुअल में

परिचय

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. 1एक कनेक्टेड MongoDB replica set — एक Atlas क्लस्टर या एक self-hosted replica set।
  2. 2एक दूसरी टैब जहाँ आप शेल कमांड चला सकें — Scratchpad या Mongo Shell टैब — परिवर्तन उत्पन्न करने के लिए।
  3. 3नीचे दिए गए शेल कमांड्स में, <database> और <collection> को अपने स्वयं के नामों से बदलें। हमेशा पहले use <database> चलाएँ ताकि कमांड सही डेटाबेस पर निष्पादित हो।

पूरे walkthrough के लिए अनुमानित समय: ~20 मिनट

चरण 1

आपका पहला निगरानी किया गया परिवर्तन

Watch खोलें और पुष्टि करें कि एक एकल परिवर्तन टाइमलाइन तक पहुँचता है।

स्टेप 1

एक replica set से कनेक्ट करें

करें

NoSqlStudio को एक MongoDB replica set या Atlas क्लस्टर से कनेक्ट करें, अपनी connection string का उपयोग करते हुए — उदाहरण के लिए mongodb+srv://<user>:<password>@<cluster-host>/

देखें

कनेक्शन खुलता है और साइडबार में दिखाई देता है।

स्टेप 2

Watch Deployment खोलें

करें

टूलबार में, Monitoring ▼ → Watch for Changes → Watch Deployment चुनें।

देखें

एक नई टैब खुलती है जिसमें एक 🎥 शीर्षक, एक हरी स्पंदित LIVE स्थिति पील और क्लस्टर का एक मिनी-मैप होता है जो PRIMARY नोड को उसके secondaries के बगल में हरे रंग में दिखाता है।

स्टेप 3

एक परीक्षण डॉक्यूमेंट सम्मिलित करें

करें

किसी अन्य टैब (Scratchpad) में, एक डेटाबेस चुनें और एक डॉक्यूमेंट सम्मिलित करें। पहले use कमांड चलाएँ:

js·2 linhas
use <database>
db.test_cw.insertOne({ hello: "test1", n: 1 })
स्टेप 4

परिवर्तन को आते देखें

करें

Watch टैब पर वापस जाएँ।

देखें

लगभग एक सेकंड के भीतर, <database>.test_cw के लिए एक हरा 🟢 Insert कार्ड टाइमलाइन के शीर्ष पर स्लाइड होता है।

क्यों

यह टूल का मूल है — लाइव स्ट्रीम कनेक्टेड है और परिवर्तन वितरित कर रही है। ✅

चरण 2

फ़िल्टर और एक्सपोर्ट

स्टेप 5

कई कलेक्शन्स में ट्रैफ़िक उत्पन्न करें

करें

विभिन्न कलेक्शन्स में कुछ inserts चलाएँ:

js·4 linhas
use <database>
db.orders.insertOne({ item: "book" })
db.users.insertOne({ name: "Ana" })
db.test_cw.insertOne({ n: 1 })
देखें

प्रत्येक insert के लिए एक कार्ड स्लाइड होता है।

स्टेप 6

टाइमलाइन को फ़िल्टर करें

करें

शीर्षक में 🔍 filter फ़ील्ड में एक कलेक्शन का नाम (उदाहरण के लिए orders) टाइप करें।

देखें

केवल वे इवेंट्स दिखाई देते रहते हैं जिनका namespace उस टेक्स्ट से मेल खाता है। फिर से सब कुछ दिखाने के लिए फ़ील्ड को साफ़ करें।

स्टेप 7

इवेंट्स को एक्सपोर्ट करें

करें

फ़िल्टर साफ़ करके, 📥 Export पर क्लिक करें।

देखें

दिखाई देने वाले इवेंट्स आपके Downloads फ़ोल्डर में एक .ndjson फ़ाइल के रूप में सहेजे जाते हैं।

अवधारणा

NDJSON. प्रति पंक्ति एक JSON डॉक्यूमेंट — इवेंट्स की एक स्ट्रीम के लिए स्वाभाविक प्रारूप, फिर से इम्पोर्ट करना या grep करना आसान।

चरण 3

रिकॉर्डिंग और रीप्ले

स्टेप 8

एक रिकॉर्डिंग प्रारंभ करें

करें

दाएँ हाथ के पैनल में, 🎬 Recording कार्ड खोजें और टॉगल को चालू करें।

देखें

कार्ड रिकॉर्डिंग स्थिति में बदल जाता है।

स्टेप 9

रिकॉर्डिंग के दौरान इवेंट्स उत्पन्न करें

करें

किसी अन्य टैब में कुछ परिवर्तन चलाएँ:

js·4 linhas
use <database>
db.test_cw.insertOne({ n: 1 })
db.test_cw.insertOne({ n: 2 })
db.test_cw.insertOne({ n: 3 })
देखें

कार्ड एक लाइव काउंटर दिखाता है, जैसे recording • 3 events

स्टेप 10

रिकॉर्डिंग बंद करें

करें

🎬 Recording टॉगल बंद करें।

देखें

रिकॉर्डिंग स्वतः एक .ndjson फ़ाइल के रूप में डाउनलोड हो जाती है।

स्टेप 11

एक फ़ाइल से रिकॉर्डिंग चलाएँ

करें

📂 Open recording पर क्लिक करें और अभी सहेजी गई .ndjson फ़ाइल चुनें।

देखें

शीर्षक को एक बैंगनी 📂 replay (file) बैज मिलता है और रिकॉर्ड किए गए इवेंट्स टाइमलाइन में लौट आते हैं।

स्टेप 12

रीप्ले मोड से बाहर निकलें

करें

बैंगनी replay बैज पर क्लिक करें।

देखें

रीप्ले मोड समाप्त होता है और लाइव स्ट्रीम फिर से शुरू होती है।

स्टेप 13

हाल के अतीत को चलाएँ

करें

Replay कार्ड में, Go back 5 minutes पर क्लिक करें।

देखें

स्ट्रीम अतीत में कुछ मिनट पहले से फिर से खुलती है, जिससे आप पहले हो चुके परिवर्तनों को देख सकते हैं।

ध्यान दें

यह केवल तब काम करता है जब क्लस्टर का oplog अभी भी उतना इतिहास रखता है। एक व्यस्त क्लस्टर पर oplog विंडो 5 मिनट से कम हो सकती है।

चरण 4

Webhooks और अलर्ट्स

Watch परिवर्तनों को एक बाहरी URL पर अग्रेषित कर सकता है और एक नियम के आधार पर डेस्कटॉप अलर्ट उठा सकता है।

स्टेप 14

एक परीक्षण webhook URL प्राप्त करें

करें

अपने ब्राउज़र में https://webhook.site खोलें और वह अद्वितीय URL कॉपी करें जो वह आपको देती है (फ़ॉर्मेट https://webhook.site/<uuid>)।

स्टेप 15

webhook जोड़ें

करें

📡 Webhooks कार्ड में, URL पेस्ट करें और + Add पर क्लिक करें।

देखें

webhook सूची में दिखाई देता है।

स्टेप 16

webhook को कॉन्फ़िगर करें

करें

webhook की सेटिंग्स विस्तारित करने के लिए उस पर ⚙ क्लिक करें। HTTP विधि को PUT में बदलें, मान Bearer xxx के साथ एक Authorization हेडर जोड़ें, और इवेंट चिप्स में केवल 🔴 Delete चुनें।

देखें

webhook अब आपके हेडर के साथ एक PUT अनुरोध के रूप में, केवल deletes पर ट्रिगर होने के लिए सेट है।

स्टेप 17

Insert — कुछ भी अग्रेषित नहीं होता

करें

एक insert चलाएँ:

js·2 linhas
use <database>
db.test_cw.insertOne({ foo: 1 })
देखें

webhook.site को कुछ नहीं मिलता — webhook केवल deletes के लिए फ़िल्टर्ड है।

स्टेप 18

Delete — webhook ट्रिगर होता है

करें

एक delete चलाएँ:

js·2 linhas
use <database>
db.test_cw.deleteOne({ foo: 1 })
देखें

webhook.site को Authorization: Bearer xxx हेडर के साथ एक PUT अनुरोध मिलता है, बॉडी में परिवर्तन इवेंट EJSON के रूप में होता है। कार्ड ✓ 1 sent दिखाता है।

स्टेप 19

एक अलर्ट बनाएँ

करें

🔔 Alerts कार्ड में, अलर्ट को एक नाम दें (उदाहरण के लिए Deleted test), namespace पैटर्न को एक नियमित अभिव्यक्ति के रूप में सेट करें — ^.*\.test_cw$ — और + Create alert पर क्लिक करें।

देखें

अलर्ट सूची में दिखाई देता है।

स्टेप 20

अलर्ट को संकीर्ण करें

करें

अलर्ट पर ⚙ क्लिक करें और, इवेंट चिप्स में, केवल 🔴 Delete चुनें।

देखें

अलर्ट अब केवल उन deletes पर ट्रिगर होगा जो पैटर्न से मेल खाते हैं।

स्टेप 21

अलर्ट ट्रिगर करें

करें

एक और delete चलाएँ:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 1 })
देखें

पहली बार, सिस्टम अधिसूचना अनुमति माँगता है — एक बार अनुमति दें। फिर एक नेटिव डेस्कटॉप अधिसूचना दिखती है, एक ध्वनि बजती है, और अलर्ट इतिहास हिट को रिकॉर्ड करता है।

अवधारणा

अलर्ट्स के कार्य करने के लिए रिकॉर्डिंग का चालू होना आवश्यक नहीं है — अलर्ट्स का मूल्यांकन स्वतंत्र रूप से होता है, और उनका इतिहास अपने आप रखा जाता है।

चरण 5

ध्वनि और क्लस्टर मिनी-मैप

स्टेप 22

ध्वनि चालू करें

करें

शीर्षक में, 🔔 Sound off पर क्लिक करें ताकि वह Sound on बन जाए।

स्टेप 23

एक insert सुनें

करें

एक insert चलाएँ:

js·2 linhas
use <database>
db.test_cw.insertOne({ n: 10 })
देखें

एक छोटा उच्च बीप बजता है।

स्टेप 24

एक delete सुनें

करें

एक delete चलाएँ:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 10 })
देखें

एक निम्न बीप बजता है — insert से अलग स्वर, ताकि आप कान से परिवर्तनों को अलग कर सकें।

स्टेप 25

मिनी-मैप को स्पंदित होते देखें

देखें

क्लस्टर मिनी-मैप में, हरा PRIMARY नोड हर बार एक इवेंट आने पर एक विस्तृत होते वलय के साथ स्पंदित होता है।

चरण 6

व्यवहार और सीमावर्ती मामले

स्टेप 26

स्थायित्व

करें

Watch टैब बंद करें (टैब शीर्षक पर ) और मेनू से इसे फिर से खोलें।

देखें

आपके webhooks, अलर्ट्स, ध्वनि सेटिंग और बफ़र आकार सब अभी भी मौजूद हैं।

स्टेप 27

डेटाबेस सूची रिफ़्रेश करें

करें

किसी अन्य टैब में एक नया डेटाबेस बनाएँ, फिर Watch शीर्षक में 🔄 Refresh पर क्लिक करें।

देखें

नया डेटाबेस scope ड्रॉपडाउन में दिखाई देता है।

स्टेप 28

बफ़र आकार

करें

शीर्षक में Buffer फ़ील्ड में 50 टाइप करें।

देखें

केवल 50 सबसे हालिया इवेंट्स दिखाई देते रहते हैं — पुराने कार्ड्स गायब हो जाते हैं।

स्टेप 29

scope परिवर्तन पर साफ़ करना

करें

🌐 Cluster scope पर एक स्ट्रीम चलते हुए, 🗄 एकल डेटाबेस पर स्विच करें।

देखें

टाइमलाइन साफ़ हो जाती है और नए scope के लिए स्ट्रीम पुनः प्रारंभ होती है।

स्टेप 30

एक standalone पर मानवीकृत त्रुटि

करें

एक standalone MongoDB सर्वर (replica set नहीं) से कनेक्ट करें और Watch Deployment आज़माएँ।

देखें

एक स्पष्ट, मित्रवत संदेश समझाता है कि Watch के लिए एक replica set आवश्यक है — “$changeStream stage is only supported…” जैसी कच्ची सर्वर त्रुटि नहीं।

चरण 7

नेटिव Tools मेनू

स्टेप 31

Tools मेनू से Watch खोलें

करें

नेटिव मेनू का उपयोग करें: Tools → Change Watcher → Watch Deployment (कीबोर्ड शॉर्टकट Ctrl+Alt+W)।

देखें

Watch टैब खुलता है, बिल्कुल टूलबार से खुलने जैसा।

ध्यान दें

नेटिव मेनू तब बनता है जब ऐप शुरू होता है। एक in-app reload (Ctrl+R) के बाद मेनू पुराना रह सकता है — मेनू परिवर्तन देखने के लिए NoSqlStudio को पूर्ण रूप से पुनः प्रारंभ करें।

सफ़ाई (जब आप पूरा कर लें)

करें

शीर्षक में Stop बटन से स्ट्रीम रोकें, फिर परीक्षण कलेक्शन को छोड़ें:

js·2 linhas
use <database>
db.test_cw.drop()
देखें

स्ट्रीम रुक जाती है और परीक्षण कलेक्शन समाप्त हो जाता है।

आपने जो सत्यापित किया उसका सारांश

चरणसुविधा
1Watch खोलें और एक लाइव परिवर्तन को टाइमलाइन तक पहुँचते देखें
2टाइमलाइन फ़िल्टर करें और इवेंट्स को NDJSON के रूप में एक्सपोर्ट करें
3इवेंट्स रिकॉर्ड करें, एक फ़ाइल से रीप्ले करें, और हाल के अतीत को रीप्ले करें
4Webhooks (विधि, हेडर्स, इवेंट फ़िल्टर) और डेस्कटॉप अलर्ट्स
5प्रति इवेंट प्रकार ध्वनि संकेत और क्लस्टर मिनी-मैप का स्पंदन
6स्थायित्व, refresh, बफ़र, scope परिवर्तन पर सफ़ाई, मानवीकृत त्रुटियाँ
7नेटिव Tools मेनू प्रविष्टि और उसका शॉर्टकट
यदि प्रत्येक स्टेप ने अपेक्षित “देखें” दिया, तो Watch स्क्रीन 100% सत्यापित है। किसी भी विसंगति का स्टेप नंबर नोट कर लें ताकि हम उसे ठीक कर सकें।