Вопрос по mongodb, schema, mongoose, node.js – Какой SchemaType в Mongoose лучше всего подходит для метки времени?

57

Я использую Mongoose, MongoDB и Node.

Я хотел бы определить схему, где одним из ее полей является дата \ отметка времени.

Я хотел бы использовать это поле для возврата всех записей, которые были обновлены за последние 5 минут.

Из-за того, что в Mongoose я не могу использовать метод Timestamp (), я понимаю, что мой единственный вариант - использовать следующий метод Javascript:

time : { type: Number, default: (new Date()).getTime() } 

Вероятно, это не самый эффективный способ обращения к огромной базе данных. Я был бы очень признателен, если бы кто-то мог поделиться более эффективным способом реализации этого.

Есть ли способ реализовать это с помощью Mongoose и использовать метку времени MongoDB?

Ваш Ответ

1   ответ
100

Редакция - 20 марта 2016 года

Мангуст теперь поддерживает метки времени для коллекций.

Пожалуйста, рассмотрите ответ @bobbyz ниже. Может быть, это то, что вы ищете.

Оригинальный ответ

Mongoose поддерживаетDate тип (который в основном является временной меткой):

time : { type : Date, default: Date.now }

С приведенным выше определением поля, каждый раз, когда вы сохраняете документ с незаданнымtime field, Mongoose заполнит это поле текущим временем.

Источник:http: //mongoosejs.com/docs/guide.htm

Наверное,Date.now вместо тогоDate.now(). Alexey Zabrodsky
Большое спасибо за ответ, но то, что я пытаюсь понять, это лучший способ запросить возврат всех записей, которые были обновлены за последние 5 минут. Вы имеете в виду, что я должен использовать: date: {$ gt: ((Math.round ((new Date ()). GetTime () / 1000)) - 300)} Liatz
@ user1103897 вы можете создать объект Date напрямую и использовать его с $ gt следующим образом: var now = new Date (); var fiveminago = new Date (now.getTime () - 5 * 60 * 1000); затем запрос с {date: {$ gt: fiveminago}} mpobrien
+ 1 elmigranto, пример документации Mongoose использует Date.now Mongoosejs.com / документы / guide.html Aaron

Похожие вопросы