当前位置: 首页 > 知识库问答 >
问题:

Spring boot嵌入式MongoDb数据预填充

盖斌
2023-03-14
  1. 我已经使用flapdoodle作为SpringBoot的嵌入式mongo。这工作很好,但我需要手动将数据放入其中。
  2. 对于mongo db的Junit测试,我使用nosqlunit。这与Fongo(假蒙哥)配合得非常好。它支持从json文件读取数据,并在启动期间用数据预填充数据库。但这只适用于junit,因为这是一个junit扩展。

我正在寻找的是上述两者的混合,一个嵌入式mongo,它不仅与JUnit一起工作,而且可以从给定的json预填充数据(类似于Flyway中的v1__init.sql)
有这样的工具吗?

共有1个答案

卜瀚漠
2023-03-14

你也可以使用Mongobee来实现这一点。如果在应用程序加载时运行变更集。

Maven依赖项

 <dependency>
    <groupId>com.github.mongobee</groupId>
    <artifactId>mongobee</artifactId>
</dependency>

您需要在上下文xml文件中为Mongobee创建bean

<bean id="mongobee" class="com.github.mongobee.Mongobee">
<constructor-arg ref="mongo"/>
<property name="dbName" value="${mongo.databaseName}"/>
<property name="enabled" value="true"/>
<property name="changeLogsScanPackage" value="basepackagewherechangesetispresent"/>
@ChangeLog(order = "1")
public class DatabaseChangeLog {

 @ChangeSet(order = "101", id = "somelogicalnameforthischangeset", author = "nameofpersonwhodidthischange")
 public void setupSeedData(MongoTemplate mongoTemplate) { 
    // run your datasetup, prefill,migration here.
 }
 类似资料:
  • 问题内容: 我使用Mongoose.js,无法解决3级层次结构文档的问题。 有2种方法可以做到。 首先 -没有裁判。 我需要出示C记录。仅知道_id的C,如何填充/找到它? 我曾尝试使用: 但是我不知道如何从returnet得到一个对象,我只需要c对象。 其次,如果使用裁判: 如何填充所有B,C记录以获取层次结构? 我试图使用这样的东西: 但是它将为single_c.title返回undefine

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • 问题内容: 我使用Mongoose.js,无法解决3级层次结构文档的问题。 有2种方法可以做到。 首先 -没有裁判。 我需要出示C记录。仅知道_id的C,如何填充/找到它? 我曾尝试使用: 但是我不知道如何从returnet得到一个对象,我只需要c对象。 其次, 如果使用裁判: 如何填充所有B,C记录以获取层次结构? 我试图使用这样的东西: 但是它将为single_c.title返回undefin

  • 我正在构建一个将使用neo4j的web应用程序。我将在Java构建一个REST API,它将使用Neo4j嵌入式版本。这个架构有什么问题吗? 用别的方法好吗?Neo4j服务器? 谢谢!

  • GroupIdDeliveryStatusReport的结构 如果我不能恰当地描述,请原谅我。 我就是这样写的

  • 我有一个Spring Boot和嵌入式Mongo DB的项目,我也想查找存储在那里的数据。我学习了本教程https://springframework.guru/spring-boot-with-embedd-mongoDB/