2012-01-13 35 views
19

Tôi đang cố gắng để có được kết quả từ mongodb sử dụng nodejs/mongoose.ISODate không được xác định

var dateStr = new Date(year,month,day,0,0,0); 
var nextDate = new Date(year,month,day,23,59,59); 

GPSData.find({"createdAt" : { $gte : new ISODate(dateStr), $lte: new ISODate(nextDate) }}, function(err, data) { 
    if(err) 
    console.log(err); 
}); 

Lỗi: ISODate is not defined

Trả lời

33

Lưu ý rằng ISODate là một phần của MongoDB và không có sẵn trong trường hợp của bạn. Thay vào đó, bạn nên sử dụng Date và trình điều khiển MongoDB (ví dụ: Mongoose ORM mà bạn hiện đang sử dụng) sẽ xử lý chuyển đổi loại giữa DateISODate đằng sau hiện trường.

+7

Nó không mặc dù. Nó tạo ra một chuỗi. –

+1

Câu trả lời là chính xác. Câu trả lời chi tiết hơn có chứa một ví dụ: http://stackoverflow.com/a/21286896/275183 –

+0

MongoDB sẽ phân tích cú pháp và lưu trữ Instance của bạn thành ISODate ("ISOstring"). Nhưng khi bạn gọi cho biết ngày một lần nữa nó sẽ được trả lại như một thể hiện ngày, tôi không muốn tin nó cho đến khi tôi thử nghiệm nó bản thân mình. – WouldBeNerd

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