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