使用mongoose 4.11后,Mongoose model.find({})无法正常工作;
我注意到在更新到mongoose 4.11之后,mongoose的行为不正常,在我的屏幕上显示警告显示后
DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead
所以我试过
let mongoConnectionLocal = {
'url': 'mongodb://username:password@localhost:27017/image-upload-gcs'
};
mongoose.connect(mongoConnectionLocal.url, { auth:{authdb:"admin"}, useMongoClient: true}, err => { if(err) { console.log(err.stack); }});
然后出现另一个警告
the options [auth] is not supported
所以我试过了,
mongoose.connect('mongodb://username:password@localhost:27017/image-upload-gcs?authSource=admin', { useMongoClient: true}, err => { if(err) { console.log(err.stack); }});
现在mongoose不再工作,甚至不能使用model.find({})或创建文档
我尝试恢复到猫鼬4.10,一切正常。这是mongoose 4.11及以上的一个错误????
答案 0 :(得分:1)
您可以尝试以下代码段
mongoose.connect(mongoConnectionLocal.url);
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));
db.once('open', function callback(){
console.log("Connection with database succeeded.");
});
答案 1 :(得分:0)
var uri = 'mongodb://localhost/user1';
var promise = mongooose.connect(uri,{
useMongoClient: true,
});
promise.openUri(uri,function(errr,db){
if(errr){
throw errr;
}else{
console.log("Connection Successfull");
mydb = db;
}
});
需要为数据库连接使用最新版本的mongoose的promise。您使用旧方法进行连接,因此请切换到更新的连接方法。