【问题标题】:Cleaning database after tests feature测试后清理数据库功能
【发布时间】:2018-01-23 20:36:21
【问题描述】:

我正在尝试在每个功能之后清理数据库,但是我尝试的每种方法都失败了。我试图删除整个 mongo 集合,dropDatabase 几乎所有东西(我猜)

包括

mongoose.connection.dropDatabase(() => {})

User.remove({ 'local.email': 'test@test.pl' })

数据库中的记录似乎没有发生任何事情。 顺便说一句,我的数据库托管在 mlab.com 上(它不是本地数据库)。我在启动应用程序(node server.js)期间建立了moongose.connection,所以我认为不需要从钩子连接到db。

我想在下面提供的钩子中实现这段代码。

【问题讨论】:

    标签: node.js mongodb mongoose end-to-end chimp.js


    【解决方案1】:

    您的数据库位于何处无关紧要 - 唯一的区别是主机地址、端口和凭据

    所以我正在使用 deleteMany 清理我的收藏

    const MongoClient = require('mongodb').MongoClient;
    ...
    MongoClient.connect("mongodb://localhost:27017/test_db", function(err, database) {
      if(err) return console.log(util.inspect(err));
      db = database.db("test_db");
      cCol = db.collection("collection_to_be_cleaned");
      if(cCol)
        cCol.deleteMany({}, function(err, result){
          if(err) return console.log(util.inspect(err));
          console.log("cleaned up ", result.deletedCount, " records");
        });    
    });
    

    【讨论】:

    • 您测试过还是只是害怕?这是代码的工作和平。澄清你已经尝试用一段代码做的事情,而不仅仅是行
    • 我试过了,它说 database.db("name_of_db") 不是一个函数。我很高兴让你进入我的 priv Github 仓库,如果你知道该怎么做,你就可以解决它
    【解决方案2】:

    我设法使用提供的屏幕截图中的代码解决了这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多