У меня есть проблема с Мангуста и MongoDbMongoose экземпляр .save() не работает
Очень интересно, что только Model.update
работы и save
никогда не работает и даже не огонь обратного вызова.
Mongoose: 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:""}
});
Update 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)
не работал.
Я знаю, что в вашем комментарии говорится, что это объект монго, но, честно говоря, в доказательстве этого нет ничего, и это самая вероятная причина, по которой ваш метод '.save' не срабатывает. Как вы проверяете, что это фактический экземпляр, возвращенный из БД? – Paul
@Paul Обновленный вопрос для вас –
Что происходит, когда вы console.log 'user' внутри обратного вызова' .find() '? –