我是Spring Boot和MongoDb的新手。尝试使用Mongo存储库和Spring Boot的一些示例。但在浏览了一些文档后发现,Mongo模板是一个更好的选择。无法使用Mongo模板示例获得正确的Spring Boot。
>
有人能帮我举个同样的例子吗?
在尝试Mongo模板时,我们是否需要创建用户定义的存储库界面并扩展存储库或CRUD存储库?
我发现了一些使用Mongo模板的例子
http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#mongo-template
http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/
如果您有兴趣使用JPA,请看下面
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>{mongo.driver.version}</version>
</dependency>
应用属性
#Mongo DB
spring.data.mongodb.database=
spring.data.mongodb.host=
spring.data.mongodb.password=
spring.data.mongodb.port=
spring.data.mongodb.repositories.enabled=
spring.data.mongodb.uri=
spring.data.mongodb.username=
春靴课
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
public class UserApp {
Mongo存储库
@Repository
public interface UserRepository extends MongoRepository<User, Long> {}
为了进一步解释,您甚至可以同时使用这两种方法。
MongoRepository
只是一个抽象层,类似于MongoTemplate
,但接口更简单。
如果您发现使用Spring查询创建进行某种操作过于复杂,并且不知何故不想使用@Query
(例如,在构建查询时需要IDE类型提示),您可以扩展MongoRepository
并使用MongoTem板
作为查询机制。
首先,我们使用自定义接口扩展我们的存储库。
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
然后声明接口。
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
然后实现我们的定制存储库。我们可以在这里自动连接MongoTemplate
,并使用它查询数据库。
public class CustomArticleRepositoryImpl implements CustomArticleRepository {
@Autowired
MongoTemplate mongoTemplate;
@Override
public List<Article> getArticleFilteredByPage(int page, int num) {
return mongoTemplate.findAll(Article.class)
.skip(page * num)
.take(num);
}
}
最后,我们使用文章库
。
@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}
我有一个集合,其中的文档如下所示:
目标 我想问一下这个问题: null 我想解决方案可能非常简单,就像查询本身一样,但这些是我在这种基础上迈出的第一步。提前感谢你在这方面的任何帮助。
我使用的是Spring Boot+MongoDB。我需要根据一些条件查询数据库,我的方法如下所示: org.bson.bsonmaximumsizeExprocededException:文档大小46282052大于最大值16793600 有人能帮我做这个吗?
错误: 2月19日-2016 00:00:16.731SEVERE[localhost]org.apache.catalina.core.Applicationontext.logStandard ardWrapper。可投掷org.springframework.beans.factory.BeanCreationException:创建名称为“人员服务”的bean时出错:自动加载依赖项注入失败
我想转换这个mongodb请求的一部分: 使用MongoTemplate(使用spring)中的aggregate方法。 你能帮帮我吗? 谢谢
问题内容: 我需要编写一个应用程序,可以使用spring-data和mongodb进行复杂的查询。我一直从使用MongoRepository开始,但是在复杂的查询中苦苦寻找实例或真正理解语法。 我说的是这样的查询: 或使用基于JSON的查询,但由于语法不正确,因此尝试并尝试了它。即使在阅读了文档之后(由于语法错误,仍无法正常工作的示例)。 阅读完所有文档后,似乎mongoTemplate文档要好得