कुछ सुझाव:
आप इन ऑब्जेक्ट्स के लिए _id के रूप में url और एक्सेस की गई तारीख (डेटाटाइम ऑब्जेक्ट का कम से कम हिस्सा) के संयोजन का उपयोग कर सकते हैं क्योंकि मैं आपको बता सकता हूं कि महीने में एक बार प्रत्येक url को स्क्रैप करने की योजना है।
उदाहरण:
{
"_id": {
"url": "www.google.com",
"date": ISODate("2013-03-01"),
},
// Other attributes
}
यह प्रदर्शन, विशिष्टता और क्वेरी लाभांश देता है (देखें यह 4वर्ग ब्लॉग पोस्ट ) आप कुछ ऐसा करने के लिए क्वेरी कर सकते हैं:
db.collection.find({
"_id": {
"$gte": {
"url": yourUrl,
"date": rangeStart
},
"$lt": {
"url": yourUrl,
"date": rangeEnd
},
}
})
जो उत्कृष्ट, अच्छी तरह से क्रमबद्ध (यूआरएल द्वारा तिथि के अनुसार, जो कि आप जो चाहते हैं वह प्रतीत होता है) परिणाम उत्पन्न करता है। आप इस अनुक्रमणिका का उपयोग कवर किए गए प्रश्नों (_id फ़ील्ड पर) करने के लिए भी कर सकते हैं यदि आप केवल उन सभी यूआरएल और महीनों का एक अच्छा सेट चाहते हैं जिन्हें आपने स्क्रैप किया है (यह आपको एक बार में प्रत्येक यूआरएल के माध्यम से जाने के लिए अच्छी तरह से सेट कर सकता है) ।
यदि आपके पास दस्तावेज़ की विशिष्ट विशेषताएं हैं जिनकी तुलना करने में आप रुचि रखते हैं (headers.server
उदाहरण के लिए) और एक विशिष्ट तुलना जो आप उनके लिए करना चाहते हैं (उदाहरण के लिए संस्करण संख्या में किसी भी वृद्धि की तलाश में), मैं संस्करण संख्या के लिए प्रासंगिक तत्वों को पकड़ने के लिए किसी प्रकार के रेगेक्स का उपयोग करूंगा (एक त्वरित और गंदा एक बस सभी को पुनः प्राप्त कर सकता है संख्यात्मक तत्व) और उन्हें प्रत्येक url के लिए ग्राफ़ करें (मुझे लगता है कि यह आपको समय के साथ सर्वर सॉफ़्टवेयर में परिवर्तनों की कल्पना करने देगा)। आप आसानी से रिपोर्ट कर सकते हैं जब भी इनमें से कोई भी विशेषता उन्हें क्रम में स्कैन करके और कुछ घटना को सेट करके बदल जाती है जब तार समान नहीं थे (शायद तब परिवर्तन या परिवर्तन के संख्यात्मक भाग की रिपोर्ट करना)।