2014-04-15 25 views
6

Koleksiyonumda dateacquired adlı bir özelliğim var ve tarih şu şekilde biçimlendirilmiş: 2014-03-28 06:08:00.Tarih Aralığı Mongeor Query, Meteor Js'yi kullanıyor

Koleksiyonumdaki tüm belgeleri, geçerli tarihten bir ay öncesine eşit veya daha az olan geri çekmem gerekiyor. Bu sorguyu nasıl yazacağımı bilmiyorum.

Böyle bir şeye nasıl başlanacağını bilen var mı?

cevap

2

Bu tarihlerin dizeler olarak depolandığını varsayalım? Dizeleri, mongoDB karşılaştırma operatörleri $gt veya $lt ile karşılaştırabilir ve beklediğiniz gibi çalışır. (Tavsiye; mrt add sugarjs aracılığıyla ekleyin) Ayrıca benim hayatı kolaylaştırmak için Sugar kullanmak için gidiyorum bana bir-liner içine bu azaltmak Date.create ve Date.format yöntemlerini veren: nasıl

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

Teşekkür ederim! Bir çekicilik gibi çalıştı! – dennismonsewicz

2

My meteor yöntemi birçok kişi son ndays içinde kaydoldu

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] birçok kişi i gün önce kaydolmuş nasıl.

İlgili konular