尝试在单元测试运行之前删除所有集合中的所有文档...

var collections = mongoose.connection.collections;
async.eachSeries(_.keys(collections), function(key, cb){

  collections[key].remove(function(){
    //Never gets here, doesn't drop the collection and doesn't error.
    cb();
  });
}


但是remove()中的回调永远不会被触发。
我已经注销了collections[key],它确实解析为一个集合。

没有错误,但是超时,因为它从不运行回调。

香港专业教育学院试图循环模型以及调用remove,但它是同样的问题。

我在这里做错了什么?我可以看任何日志吗?

最佳答案

您可以尝试使用drop方法:

var async = require("async"),
    _ = require("underscore"),
    collections = _.keys(mongoose.connection.collections);

async.forEach(collections, function(key, done) {
    var collection = mongoose.connection.collections[key]
    collection.drop(function(err) {
        if (err && err.message != "ns not found") {
            done(err);
        } else {
            done(null);
        }
    })
}, callback);

关于node.js - NodeJS Mongoose collection.remove不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29946016/

10-11 17:38