2014-04-15 18 views
6

Tôi có một thuộc tính trong bộ sưu tập của mình có tên là dateacquired và ngày được định dạng như: 2014-03-28 06:08:00.Phạm vi ngày Mongo Truy vấn bằng cách sử dụng Meteor Js

Tôi cần phải rút lại tất cả tài liệu trong bộ sưu tập của mình ít hơn hoặc bằng một tháng trước kể từ ngày hiện tại. Tôi chỉ không chắc chắn làm thế nào để viết truy vấn này.

Bất kỳ ai biết cách bắt đầu một cái gì đó như thế này?

Trả lời

2

Tôi giả sử những ngày đó được lưu dưới dạng chuỗi? Bạn có thể so sánh các chuỗi với các toán tử soo mongoDB $gt hoặc $lt và chúng hoạt động như bạn mong đợi. Tôi sẽ cũng sử dụng Sugar để làm cho cuộc sống của tôi dễ dàng hơn (rất khuyến khích; thêm qua mrt add sugarjs) mà mang lại cho tôi những phương pháp Date.createDate.format mà giảm này vào một lớp lót:

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

Cảm ơn bạn !! Làm việc như người ở! – dennismonsewicz

2

phương pháp sao băng của tôi cho như thế nào nhiều người đã đăng ký trong nDays lần cuối:

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] là có bao nhiêu người đăng ký i ngày trước.

Các vấn đề liên quan