एक लंबी कहानी को छोटा करने के लिए:MongoDB में एक लचीला है स्कीमा। बस एक दिनांक फ़ील्ड जोड़ें। चूंकि पुरानी प्रविष्टियों में यह नहीं है, वे अंतिम प्रविष्टि नहीं हो सकती हैं।
आइए उस फ़ील्ड को mtime
कहते हैं ।
इसलिए आपकी स्कीमा परिभाषा में दिनांक फ़ील्ड जोड़ने के बाद, हम नए फ़ील्ड पर अवरोही क्रम में एक अनुक्रमणिका उत्पन्न करते हैं:
db.yourCollction.createIndex({mtime:-1})
संग्रह के लिए अंतिम समय ढूँढना अब आसान है:
db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
इसे हर संग्रह के लिए करें। जब उपरोक्त क्वेरी किसी संग्रह को शुद्ध करने के लिए आपके द्वारा निर्धारित समय सीमा के भीतर कोई मान नहीं लौटाती है, तो बस इसे छोड़ दें, क्योंकि जब से आपने एमटाइम फ़ील्ड पेश किया है तब से इसे संशोधित नहीं किया गया है।
आपके संग्रह साफ़ हो जाने के बाद, आप mtime
. को हटा सकते हैं आपकी स्कीमा परिभाषा से फ़ील्ड। दस्तावेज़ों से इसे हटाने के लिए, आप एक साधारण क्वेरी चला सकते हैं:
db.yourCollection.update(
{ "mtime":{ $exists:true} },
{ "$unset":{ "mtime":""} },
{ multi: true}
)