【问题标题】:dropDatabase from spring mongo来自 spring mongo 的 dropDatabase
【发布时间】:2012-04-17 07:55:29
【问题描述】:

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

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

【问题讨论】:

    标签: spring-data-mongodb mongodb-java


    【解决方案1】:

    以防万一有人需要信息,请注意,从 3.0 开始,MongoDatabase api 中没有 dropDatabase() 方法,因此您必须改为这样编写:

    mongoTemplate.getDb().drop();

    >> source <<

    【讨论】:

      【解决方案2】:

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

      mongoDbFactory.getDb().dropDatabase();
      

      【讨论】:

      【解决方案3】:

      终于找到了!

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

      【讨论】:

        【解决方案4】:

        mongoTemplate.getDb().dropDatabase();

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-10
          • 2020-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多