Node.js MongoError:尝试删除集合时未找到ns

Node.js MongoError:尝试删除集合时未找到ns,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,当我尝试删除集合时,Mongoose抛出一个错误,即“MongoError:ns not found” 这是我的猫鼬代码: var mongoose = require('bluebird').promisifyAll(require('mongoose')); ...... ...... ...... mongoose.connection.db.dropCollection("myCollection",function(err,affect){ console.log('err

当我尝试删除集合时,Mongoose抛出一个错误,即“MongoError:ns not found

这是我的猫鼬代码:

var mongoose = require('bluebird').promisifyAll(require('mongoose'));
......
......
......   
mongoose.connection.db.dropCollection("myCollection",function(err,affect){
   console.log('err',err);

})
错误:

错误{[MongoError:ns未找到]
名称:“MongoError”,
信息:“ns 未找到',
确定:0,
errmsg:'未找到ns'}


MongoError:ns not found
在对不存在的集合执行操作时发生


例如,尝试在显式创建集合之前或向隐式创建集合的集合添加文档之前删除索引。

这是我的mongodb连接接口,以避免删除集合错误:

“严格使用”;
module.exports=class{
静态异步连接(){
this.mongoose=require('mongoose');
等待这个.mongoose.connect(process.env.MONGODB_DSN{
useNewUrlParser:true,
重新连接:Number.MAX_值,
重新连接区间:5000,
UseFindModify:false
}).catch(错误=>{
console.error('数据库连接错误:'+err.message);
});
this.db=this.mongoose.connection.db;
返回这个.db;
}
静态异步dropCollection(列表){
if(list.constructor.name!=='Array'){
列表=[列表];
}
const collections=(等待this.db.listCollections().toArray()).map(collection=>collection.name);
for(设i=0;i
状态(ErrorCodes::NamespaceNotFound,“未找到ns”)

例如:


除此之外,在执行任何CRUD操作之前,无需显式检查集合是否已存在。

您没有连接到数据库(使用
mongoose.connect()
)。mongoose没有drop集合方法。chekout回答更多信息。是的,我使用过mongoose.connect()@robertklep@RajeshDhiman,mongoose.connection.db.dropCollection方法已使用,因此在本例中,您不能删除一个根本不存在的集合。ns可能是名称空间?Mongo,Inc.的谁想到的?!