var todoListSchema = mongoose.Schema({
name: {type: String}
, tag: {type: String}
, createDate: {type: Date}
, endDate: {type: Date} // 截止日期
, content: {type: String}
, done: {type: Boolean}
, remainDate: {type: number} // 剩余天数
});
var todoList = mongoose.model('todos', todoListSchema);
以上是我设计的 ToDoList Schema,打算在查询某个人的 ToDoList 时,更新 endDate 的值并保存,最后输出结果。
express-promise 这个模块可以使 render 模版里的 mongoose 查询代码立即执行,所以我尝试发挥这一特长,使用了一下…
// app.js 中使用该模块
app.use(require('express-promise')());
然而下面代码犯了难…我尝试给Schema构造一个更新并保存remainDate的方法,将方法放在find操作与sort操作中间,会报错提示构造的方法不是一个function。难道只能用回调写吗???
// 想知道如何实现形似下面的代码
res.render('todos',{
todos: todoList.find({name: req.session.user}).(将过滤后的每条todo,根据 endDate 与当前时间的差值更新remainDate值并保存).sort().exec()
}
mongoose有一个'find'的pre hook