mongoose listCollections()不返回集合名称,而是返回一个promise挂起

问题描述 投票:0回答:1

我想在运行中创建模型,所以我使用下面的代码来实现相同的功能。

var connection = mongoose.createConnection(metadb_uri, mongo_opts, function() {
   log.debug(process.env.DB_ENV+' setup done')
});

const _schema = new Schema({
   count:Number,
   users:{type: mongoose.Schema.Types.Mixed, default: {}} 
});

let name = 'name_123';

//trying to get collection names
connection.db.listCollections.toArray().then((names) => {

    if (!(name in names.name)) {
       let userAnalyticsDB = connection.model(name,_schema);
       module.exports.Collection = userAnalyticsDB;
    }
  })
  .catch((err)=>{
    return err;
  })
});

所以connection.db.listCollections.toArray()将promise状态返回为pending。任何人都可以有一个想法,为什么它作为undefined给予承诺价值。

请给我一些提示。

node.js mongodb mongoose
1个回答
0
投票

感谢您的回答和帮助。我调试了这个问题,发现它与Promise地狱有关。我在承诺中写下了诺言。所以它回来了作为pendingundefined的承诺

© www.soinside.com 2019 - 2024. All rights reserved.