我正在使用nodejs和mongo(使用mongooose)来构建一个简单的应用程序,但我有这个小问题。
如果我使用find方法搜索我的documento,我找到了该文档(是的,我可以在此更新),但如果我使用更新方法,则无法找到它。为什么呢?
我的控制器方法
var query = {
_id: ObjectId(req.params.runner_id)
};
Runner.find(query, function(e,o) {
console.log(o); //here i found
})
Runner.update(query, req.body, function (err, qtd) {
console.log(qtd); //here note
if (err) {
...
} else {
...
}
})
我的架构
module.exports = mongoose.model("Runner", new Schema({
cellphone: {
type: String,
require: "qual o telefone?",
unique: true,
validate: {
validator: function (v) {
var re = /^\d{11}$/;
return (v == null || v.trim().length < 1) || re.test(v);
},
message: "telefone inválido"
}
},
created_at: {
type: Date,
default: Date.now
},
advisors: [{
name: {
type: String,
require: "entre com o nome"
},
email: {
type: String,
require: "entre com o e-mail"
},
advisor: {
type: ObjectId,
require: "qual a assessoria?"
}
}]
}));
我的输出
更新 - &gt; {ok:0,n:0,nModified:0} 与find - &gt; [{_id:5a0b99a9328fec0e4111ca52, 手机:'85999981114', __v:0, 顾问:[[对象]], created_at:Wed Nov 15 2017 01:34:33 GMT + 0000(UTC)}]
答案 0 :(得分:0)
app.get('/', function(req, res){
var query = {
_id: ObjectId(req.params.id)
};
Runner.find(query, function(e,o) {
console.log(o); //here i found
})
}
app.put('/:id', function(req, res){
var Id=req.params.id;
Runner.findById(Id, function (err, qtd) {
console.log(qtd); //here qtd will found
if (err) {
...
} else {
...
}
}