Можно и так:
1) В Schema:
...
date: {
type: String,
},
...
2) При сохранении записываем туда миллисекунды (результат Date.prototype.getTime())
3) Пример запроса:
db.collection.find({$and:[{date:{$gte:'1471974357000'}}, {date:{$lt:'1471974537000'}}]}).pretty()
4) Если использовать, например, mongoose, это выглядит как-то так:
findQuery.$and.push({
date: { $gte: `${new Date(year, month, day, hour).getTime()}` },
}) и т.д.
Upd: Чтобы конвертировать unixtime в формат Date.prototype.getTime, нужно просто его умножить на 1000