मैं JS / Node.JS / Express / MongoDB का उपयोग करके एक एप्लिकेशन बना रहा हूं। उपयोगकर्ता एक लिस्टिंग खरीद सकते हैं। सूची एक MongoDB डेटाबेस में एक दस्तावेज़ के रूप में संग्रहीत हो जाती है। मैं चाहता हूं कि लिस्टिंग एक निर्धारित समय के बाद "समाप्त" हो जाए (उदाहरण के लिए, 30 दिन)। मैं "समाप्त" नामक दस्तावेज़ में केवल एक बूलियन फ़ील्ड सोच रहा हूं जो डिफ़ॉल्ट रूप से गलत है, लेकिन समय समाप्त होने के बाद सत्य पर स्विच हो जाता है। क्या प्रत्येक लिस्टिंग में टाइमर संलग्न करने के लिए जावास्क्रिप्ट का उपयोग करने का कोई तरीका है, और फिर टाइमर की समाप्ति के बाद डीबी में परिवर्तन को ट्रिगर करता है?
1 उत्तर
इसके लिए आपको एक टीटीएल इंडेक्स बनाना होगा। TTL (टाइम टू लाइव) इंडेक्स एक निश्चित समय के बाद दस्तावेज़ को हटा देता है।
आप नीचे के रूप में टीटीएल सूचकांक बना सकते हैं:
product.createIndexes({ "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 })
यहाँ उत्पाद स्कीमा है। आपको lastModifiedDate को उस फ़ील्ड में बदलना चाहिए जिस पर आप एक निश्चित समय के बाद दस्तावेज़ को हटाने का निर्णय ले रहे हैं।
आप नोडज में ड्राइवर का उपयोग करके या मोंगो शेल में ही संग्रह पर एक इंडेक्स बना सकते हैं।