MONGO - 丢弃不存在的集合会抛出"找不到 NS"



我正在尝试删除一个不存在的集合,但出现以下错误:

MongoError: ns未找到。

在一个类似的问题中,有一个指向 mongo 代码的链接,它表明这是预期的行为:

Mongo错误:尝试删除集合时找不到ns

但是,根据 mongo 文档,如果集合不存在,此方法应返回false

https://docs.mongodb.com/manual/reference/method/db.collection.drop/#db.collection.drop

我错过了什么?

服务器版本 - 3.6.5,mongodb 客户端 (javascript( - 3.0.21

我使用的命令:

await mongodb.collection('colname').drop()

mongodb.collection('colname').drop((err, res) => {
console.log('err: ' + err + ', res: ' + res) // doesn't get called
})

链接是指 mongo 客户端的命令界面。它使用javascript,但是一个有自己的REPL的应用程序。文档是正确的。

您正在使用的命令来自官方的 mongodb 节点包。这些命令的行为与 mongo 客户端上的行为不同。有关您的使用的文档在这里:http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#drop

顺便说一句,第一个参数是一个选项对象,第二个参数是回调。

您提供的回调仅在成功的 mongodb 查询时调用。当集合不存在时(如本例所示(,不执行回调。但是这个函数返回一个承诺,可以用来处理任何错误:

mongodb.collection('colname').drop().then(function () {
// success
}).catch(function () {
// error handling
})

最新更新