我有一个典型的架构和模型:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
email: String,
password: String,
profile: {
name: String,
surname: String,
photo: String
},
stats: {
lastLogin: { type: Date, default: Date.now },
loginCount: Number,
lastIP: String
},
source: String,
deleted: Boolean,
dateCreated: { type: Date, default: Date.now }
});
mongoose.model('User', userSchema);
Run Code Online (Sandbox Code Playgroud)
当我执行此更新时,它仅在我定义回调时有效,否则它只是执行但在数据库中没有更改值:
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}});
Run Code Online (Sandbox Code Playgroud)
这有效:
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}}, function() {});
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?我没有在文档中看到是否需要回调但是要求这个很奇怪......我想我在这里遗漏了一些东西.
注意:我正在通过电子邮件进行测试建议,我在NodeJS v0.8.17中使用mongoose v3.5.4,并使用简单的Express v3.0.6设置.
提前致谢.
是否有更好的方法来将Jade中字符串的第一个字符大写比这更好?
for list in project.lists
- list.name = list.name.charAt(0).toUpperCase() + list.name.slice(1);
li #{list.name}
Run Code Online (Sandbox Code Playgroud)
每次我想要变量大写这样做都很难看,有没有办法在Jade中我可以定义一个我在每个模板中都可用的自定义函数,如:
for list in project.lists
li #{ucfirst(list.name)}
Run Code Online (Sandbox Code Playgroud)
提前致谢!