MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगो डीबी के कैप्ड संग्रह में हटाए गए दस्तावेज़ों को ट्रैक करें

कैप्ड संग्रह निश्चित आकार के संग्रह होते हैं जो संग्रह के पूर्ण होने पर सबसे पुराने दस्तावेज़ों को अधिलेखित करके (प्रविष्टि आदेश के आधार पर) स्वचालित रूप से हटा देते हैं।

संकल्पनात्मक रूप से छायांकित संग्रह एक कतार के बजाय एक वृत्ताकार बफर होते हैं।

यह लगातार आदेश जानकारी के उपयोग के मामले के लिए उपयुक्त नहीं है - हटाए जाने पर एक कैप्ड संग्रह में दस्तावेज़ों को दोबारा डालने के लिए कोई "हुक" नहीं है, और यदि आपका कैप्ड संग्रह बहुत छोटा है तो आप ओवरराइट कर सकते हैं दस्तावेज़ संसाधित होने से पहले।

मुझे लगता है कि आप वास्तव में एक सामान्य (गैर-कैप्ड) संग्रह का उपयोग करना चाहते हैं।

स्थिति के आधार पर पुराने ऑर्डर हटाएं

यदि आप कुछ राज्य मूल्य के आधार पर आदेशों को हटाना चाहते हैं, तो आपको इसे अपने आवेदन कोड में संभालना चाहिए (उदाहरण के लिए, जब कोई आदेश "लंबित" से "संसाधित" स्थिति में चला जाता है तो जो भी सफाई की आवश्यकता होती है)।

समय के आधार पर पुराने/समाप्त ऑर्डर हटाएं

यदि आप किसी विशिष्ट समय पर पुराने/समाप्त ऑर्डर को स्वचालित रूप से हटाना चाहते हैं, तो एक अच्छा तरीका एक सामान्य संग्रह का उपयोग करना होगा जिसमें दस्तावेज़-स्तरीय समय-से-लाइव (TTL) समाप्ति , जैसे:

db.orders.ensureIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

फिर आप expireAt . के आधार पर प्रत्येक ऑर्डर दस्तावेज़ के लिए समाप्ति को सेट (या विस्तारित) कर सकते हैं दिनांक। ध्यान दें कि यह एक उपयुक्त विकल्प नहीं हो सकता है यदि आपको expireAt . दोनों की जांच करने की आवश्यकता है मान और स्थिति फ़ील्ड (TTL की समाप्ति पूरी तरह से प्रदान की गई दिनांक अनुक्रमणिका पर आधारित है)।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB जावा ड्राइवर के लिए लॉगिंग कॉन्फ़िगर करें

  2. pymongo का उपयोग करके संग्रह को json फ़ाइल में कैसे डंप करें?

  3. MongoDB BSON दस्तावेज़ आकार सीमा को समझना

  4. नेवला डेटा की समय सीमा समाप्त लेकिन डेटाबेस में रखें

  5. MongoDB मौजूदा क्षेत्रों से स्कोर की गणना कर रहा है और इसे उसी संग्रह में एक नए क्षेत्र में डाल रहा है