2015-04-26 1 views
1

У меня есть приложение Node.js, и я использую Mongoose для взаимодействия с MongoDB на Compose.io. Вот код, который должен хранить текущую дату и время в моей базе данных:Node.js Дата Объекты, хранящиеся в MongoDB как «1970-01-01T00: 00: 00.001Z»

signup.Volunteer.find({_id : uniqueid.toObjectId()}, function(err, doc){ 
    var volunteer = doc[0]; 
    var date = new Date(); 
    console.log(date.toString()); 
    //volunteer.time_out is an array 
    //defined in Volunteer Schema as: 'time_in : [Date]' 
    volunteer.time_in = volunteer.time_in.push(date); 
    volunteer.save(function(err){ 
     ... 
    }); 
}); 
.... 

Если я печатаю эти объекты даты на консоль, я получаю правильную дату. НО, когда я храню объект в своей базе данных, он хранится как «1970-01-01T00: 00: 00.001Z». Есть ли идеи, почему это произойдет?

ответ

2

Проблема в том, что вы назначаете возвращаемое значение volunteer.time_in.push обратно на volunteer.time_in. Возвращаемое значение - это новая длина массива, а не сам массив.

Меняем эту строку просто:

volunteer.time_in.push(date); 
+0

Ничего себе, какая глупая ошибка на моей стороне. На самом деле даже не стоит того. Спасибо, что указали! –

0

Проверьте формат даты в вашей базе данных. Формат даты MongoDB - YYYY-MM-DD

+0

Были ли вы найти формат даты? не мог найти его сам haha ​​ –

+0

[Mongo Docs] (http://docs.mongodb.org/manual/reference/mongodb-extended-json/) – SPeoples

 Смежные вопросы

  • Нет связанных вопросов^_^