mongoose listCollections()不返回集合名称,而是返回一个promise挂起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoose listCollections()不返回集合名称,而是返回一个promise挂起相关的知识,希望对你有一定的参考价值。
我想在运行中创建模型,所以我使用下面的代码来实现相同的功能。
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
给予承诺价值。
请给我一些提示。
答案
感谢您的回答和帮助。我调试了这个问题,发现它与Promise地狱有关。我在承诺中写下了诺言。所以它回来了作为pending
和undefined
的承诺
以上是关于mongoose listCollections()不返回集合名称,而是返回一个promise挂起的主要内容,如果未能解决你的问题,请参考以下文章