2014-04-15 11 views
6

का उपयोग कर मैं अपने संग्रह dateacquired कहा जाता है में एक विशेषता है और तिथि का प्रारूप ऐसा: 2014-03-28 06:08:00तिथि सीमा मोंगो क्वेरी उल्का जे एस

मुझे अपने संग्रह में सभी दस्तावेजों को वापस खींचने की आवश्यकता है जो वर्तमान तिथि से एक महीने पहले से कम या बराबर हैं। मुझे यकीन नहीं है कि इस सवाल को कैसे लिखना है।

कोई भी इस तरह से कुछ शुरू करने के बारे में जानता है?

उत्तर

2

मुझे लगता है कि उन तिथियों को स्ट्रिंग के रूप में संग्रहीत किया जाता है? आप mongoDB तुलना ऑपरेटर $gt या $lt के साथ तारों की तुलना कर सकते हैं और वे आपकी अपेक्षा के अनुसार काम करते हैं। मैं अपने जीवन को आसान बनाने के लिए Sugar उपयोग करने के लिए जा रहा हूँ (अत्यधिक की सिफारिश की, mrt add sugarjs के माध्यम से जोड़ने के) जो मुझे Date.create और Date.format तरीकों जो एक एक लाइनर में इस को कम कर देता है:

var cursorOfDocumentsSinceOneMonthAgo = yourCollection.find({ 
    dateacquired: 
     { $gt: Date.create("1 month ago").format("{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}") 
     } 
    }); 
+1

धन्यवाद !! एक जादू की तरह काम किया! – dennismonsewicz

2

के लिए कैसे मेरे उल्का विधि कई लोगों को पिछले Ndays में साइन अप किया है:

userCountPreviousDays: function (nDays) { 
    check(nDays, Number); 

    var arr = []; 

    var now = new Date().getTime(); 
    var msInDay = 1000 * 60 * 60 * 24; 

    for (var i = 0; i < nDays; i++) { 
     arr[i] = Meteor.users.find({ 
     createdAt: { 
      $lt: new Date(now - (msInDay * i)), 
      $gt: new Date(now - (msInDay * (i+1))) 
     } 
     }).count(); 
    }; 

    return arr; 
} 

arr[i] कि कितने लोगों को i दिन पहले साइन अप किया है।

संबंधित मुद्दे