संग्रह और डेटा

संग्रह आपके बॉट की अपनी डेटा तालिकाएँ हैं। इनमें आवेदन, ऑर्डर, डायलॉग के उत्तर, गेम अंक, कक्षाओं के लिए प्रविष्टियाँ — वह सब कुछ जो बॉट उपयोगकर्ताओं से एकत्र करता है या इंटीग्रेशन से प्राप्त करता है — रखना सुविधाजनक है। अनुभाग बाईं ओर के मेनू में है: डेटा → संग्रह

संग्रह क्या होता है

संग्रह में फ़ील्ड (स्कीमा, जो कॉलम का वर्णन करती है) और रिकॉर्ड (डेटा वाली पंक्तियाँ) होते हैं। प्रत्येक रिकॉर्ड — संग्रह के फ़ील्ड के अनुसार मूल्यों का एक सेट है; अंदर यह एक लचीले JSON-दस्तावेज़ के रूप में संग्रहीत होता है, इसलिए नए फ़ील्ड जोड़ने पर संग्रह आसानी से टिका रहता है।

संग्रह का नाम एक बॉट के भीतर अद्वितीय होता है और रिएक्शन के कार्यों में पहचानकर्ता के रूप में उपयोग किया जाता है (उदाहरण के लिए, leads, orders, scores)।

फ़ील्ड के प्रकार

संग्रह बनाते समय आप फ़ील्ड की सूची और प्रत्येक का प्रकार निर्दिष्ट करते हैं:

  • text — स्ट्रिंग (नाम, email, टिप्पणी)।
  • number — संख्या (राशि, मात्रा, अंक)।
  • bool — हाँ/नहीं (true / false)।
  • datetime — दिनांक और समय।
  • json — जटिल मूल्यों के लिए नेस्टेड ऑब्जेक्ट या ऐरे।

प्रकार यह प्रभावित करता है कि इंटरफ़ेस में फ़ील्ड कैसे संपादित होता है और सहेजते समय मूल्य कैसे परिवर्तित होता है। स्कीमा कठोर नहीं है: यदि रिकॉर्ड में स्कीमा के बाहर का फ़ील्ड हो, तो वह सहेजा जाएगा और एक अलग कॉलम में प्रदर्शित होगा।

संग्रह बनाना

  1. डेटा → संग्रह खोलें और जोड़ें पर क्लिक करें।
  2. नाम निर्दिष्ट करें (लैटिन वर्णमाला में, बिना स्थान के — इस तरह रिएक्शन में संदर्भित करना आसान होता है)।
  3. फ़ील्ड बटन से आवश्यक कॉलम जोड़ें और प्रत्येक का प्रकार चुनें।
  4. यदि आवश्यक हो तो संग्रहण नियम निर्धारित करें (नीचे देखें) और सहेजें।

रिकॉर्ड: देखना और संपादित करना

संग्रह कार्ड पर टेबल आइकन वाला एक बटन है — यह इस संग्रह के रिकॉर्ड के साथ डेटा विंडो खोलता है:

  • देखें — सभी पंक्तियाँ सूची में प्रदर्शित होती हैं, प्रति सेल एक फ़ील्ड, सबसे नए से शुरू करते हुए।
  • रिकॉर्ड जोड़ें — संग्रह की स्कीमा के अनुसार फ़ॉर्म खोलता है; प्रत्येक फ़ील्ड अपने प्रकार के अनुसार संपादित होता है (bool के लिए टॉगल, json के लिए JSON इनपुट फ़ील्ड, आदि)।
  • बदलें (पेंसिल) — मौजूदा पंक्ति संपादित करता है।
  • हटाएँ (कूड़ेदान) — पंक्ति हटाता है।

रिकॉर्ड स्वचालित रूप से भी भरे जाते हैं — बॉट के रिएक्शन के कार्यों द्वारा (नीचे देखें)। मैन्युअल संपादन और ऑटो-राइट एक ही संग्रह के साथ काम करते हैं।

संग्रहण (retention)

संग्रह को अनंत तक बढ़ने से रोकने के लिए, ऑटो-क्लीनअप नियम निर्धारित करें:

  • अधिकतम रिकॉर्ड संग्रहीत करें — सीमा पार होने पर सबसे पुराने रिकॉर्ड हटा दिए जाते हैं।
  • अधिकतम (दिनों में) संग्रहीत करें — निर्दिष्ट समय से पुराने रिकॉर्ड हटा दिए जाते हैं।

क्लीनअप समय-समय पर बैकग्राउंड प्रक्रिया द्वारा किया जाता है; नियमों को संयोजित किया जा सकता है।

रिएक्शन से डेटा के साथ काम करना

संग्रह सीधे रिएक्शन कंस्ट्रक्टर से जुड़े हैं। रिएक्शन के कार्यों में उपलब्ध हैं:

  • रिकॉर्ड बनाएँ — एक पंक्ति जोड़ता है; मूल्य टेम्प्लेट से लिए जाते हैं (उदाहरण के लिए, {{user.id}}, {{message.text}}). डुप्लिकेशन कुंजी सेट की जा सकती है ताकि बार-बार कॉल उसी पंक्ति को अपडेट करे, न कि डुप्लिकेट बनाए।
  • रिकॉर्ड अपडेट करें — शर्त से मेल खाने वाली पंक्तियाँ बदलता है।
  • रिकॉर्ड क्वेरी करें — एक्जिक्यूशन कॉन्टेक्स्ट में ऐरे के रूप में पंक्तियाँ पढ़ता है, ताकि आगे उन्हें इटरेट किया जा सके।
  • रिकॉर्ड हटाएँ — शर्त के अनुसार पंक्तियाँ हटाता है।
  • लूप (for-each) — कॉन्टेक्स्ट से ऐरे पर जाता है और प्रत्येक एलिमेंट के लिए नेस्टेड कार्य करता है (उदाहरण के लिए, संग्रह की सूची के अनुसार संदेश भेजना)।

इस तरह बॉट बिना बाहरी डेटाबेस के CRM बनाए रख सकता है, आवेदन एकत्र कर सकता है, अंक जमा कर सकता है और रिपोर्ट बना सकता है।

Mini App से एक्सेस

संग्रह के रिकॉर्ड आपके बॉट के Telegram Mini App से पढ़े जा सकते हैं: फ्रंटएंड फ़िल्टर और लिमिट के साथ नाम से संग्रह डेटा अनुरोध करता है। इससे Telegram के अंदर ही उपयोगकर्ता को उसके ऑर्डर, इतिहास या लीडरबोर्ड दिखाना संभव होता है।

सुझाव

  • फ़ील्ड को छोटे मशीन नाम दें (email, total, paid) — उन्हें रिएक्शन टेम्प्लेट में डालना अधिक सुविधाजनक होता है।
  • आइडेम्पोटेंट राइट के लिए (उदाहरण के लिए, «प्रति उपयोगकर्ता एक आवेदन») डुप्लिकेशन कुंजी का उपयोग करें।
  • लॉग और अस्थायी डेटा के लिए retention चालू करें ताकि संग्रह न बढ़े।
  • json प्रकार तब उपयुक्त है जब मूल्य की संरचना पहले से तय नहीं है।