我與貓鼬和MongoDB貓鼬實例.save()不工作
問題這是非常有趣的是,只有Model.update
作品和save
永遠不會奏效甚至不火的回調。
貓鼬:4.4.5 的MongoDB:3.0.8
快速通道
var mongoose = require('mongoose');
mongoose.connect("mongodb://127.0.0.1:27017/db");
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function(callback) {
console.log("connection to db open")
});
var User = require("../models/user.js");
用戶模型
var user = new Schema({
uid: { type: Number, required: true, unique: true},
hwid: { type: String, default:""},
bol:{type:String,default:""}
});
更新Enpoint
工作版本:Model.update()
User.update({_id: id}, {
uid: 5,
}, function(err, numberAffected, rawResponse) {
console.log(err);
})
不工作的版本,我必須解決這個問題:Object.save()
User.find({_id:id}, function(err,user){
if(err){
console.log(err);
}
if(!user){
console.log("No user");
}else{
user.uid = 5;
user.save(function(err,news){
console.log("Tried to save...");
});
}
console.log("At least worked");
})
即使回調沒有觸發。連接成功打開。它從不調用回調。
- 儘量選用
var User = connection.model('User', schema)
沒有工作。
我知道你的評論說這是一個mongo對象,但說實話,你沒有證明這一點,這是你的'.save'方法沒有被激發的最可能的原因。你如何驗證它是從DB返回的實際實例? – Paul
@Paul爲你更新的問題 –
當''.find()'回調函數中的console.log'user'出現什麼情況? –