2

我想在我的集成测试之前在我的 mongo 中删除数据库。是否可以通过 spring mongo 做到这一点?

如果它现在不可用,是否可以从 spring mongo 以某种方式获取 com.mongodb.DB 对象,所以我可以调用它的 dropDatabase() ?

4

4 回答 4

4

以防万一有人需要信息,请注意自 3.0 以来 MongoDatabase api 中没有 dropDatabase() 方法,因此您必须改为编写以下代码:

mongoTemplate.getDb().drop();

>>来源<<

于 2018-07-04T00:44:07.840 回答
3

我正在使用的一个稍微干净的解决方案是使用 MongoDbFactory 对象,如下所示:

mongoDbFactory.getDb().dropDatabase();
于 2013-06-05T06:12:48.473 回答
1

终于找到了!

从 mongodb 外壳:

> db.dropDatabase
function () {
    if (arguments.length) {
        throw "dropDatabase doesn't take arguments";
    }
    return this._dbCommand({dropDatabase:1});
}

结合mongoOperations 的 executeCommand

@Autowired private MongoOperations ops;

@BeforeMethod
public void dropDb() {
    this.ops.executeCommand("{dropDatabase:1}");
}
于 2012-04-17T15:09:19.580 回答
1

mongoTemplate.getDb().dropDatabase();

于 2017-08-10T07:15:39.920 回答