spring mongo的dropDatabase

时间:2012-04-17 07:55:30

标签: spring-data-mongodb mongodb-java

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

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

4 个答案:

答案 0 :(得分:3)

我使用的稍微清洁的解决方案是使用MongoDbFactory对象,如下所示:

mongoDbFactory.getDb().dropDatabase();

答案 1 :(得分:2)

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

mongoTemplate.getDb().drop();

>> source <<

答案 2 :(得分:1)

终于找到了它!

来自mongodb shell:

> 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}");
}

答案 3 :(得分:1)

mongoTemplate.getDb()dropDatabase();