我想在集成测试之前在我的mongo中删除数据库。是否有可能通过spring mongo来做到这一点?
如果它现在不可用,是否可以以某种方式从spring mongo获取com.mongodb.DB对象,所以我可以调用它的dropDatabase()?
答案 0 :(得分:3)
我使用的稍微清洁的解决方案是使用MongoDbFactory对象,如下所示:
mongoDbFactory.getDb().dropDatabase();
答案 1 :(得分:2)
如果有人需要此信息,请注意,自3.0版以来,MongoDatabase api中没有dropDatabase()方法,因此您必须编写以下代码:
mongoTemplate.getDb().drop();
答案 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();