spring mongo的dropDatabase

问题描述 投票:1回答:4

在集成测试之前,我想在我的mongo中删除数据库。是否有可能通过春天mongo这样做?

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

spring-data-mongodb mongodb-java
4个回答
3
投票

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

mongoDbFactory.getDb().dropDatabase();

2
投票

为了防止有人需要这些信息,请注意,自3.0以来MongoDatabase api中没有dropDatabase()方法,所以你必须改为:

mongoTemplate.getDb().drop();

>> source <<


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

1
投票

mongoTemplate.getDb()dropDatabase();

© www.soinside.com 2019 - 2024. All rights reserved.