使用mongoose 4.11后,Mongoose model.find({})无法正常工作; [错误??]

时间:2017-06-30 04:41:16

标签: node.js mongoose

使用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及以上的一个错误????

2 个答案:

答案 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。您使用旧方法进行连接,因此请切换到更新的连接方法。

  

link