Spring Data MongoDB,使用MongoRepository还是MongoTemplate?

4
如果使用MongoRepository,您可以拥有以下代码:
@Repository
public interface UserRepo extends MongoRepository<User, String> {

    // additional methods go here 

} 

那么你可以使用 userRepo.save()、find()方法等来进行CRUD操作。

或者你可以直接使用 MongoTemplate 进行CRUD操作。

我的问题是,哪种方法更好?每种方法的优缺点是什么?谢谢!


2个回答

6

通过查看源代码,可以发现MongoRepository使用mongoTemplate并提供一组常用的DAO API,因此换句话说,使用MongoRepository是首选方式。


4

MongoTemplate :

  • 更加灵活和功能强大(用于更复杂的查询和聚合)
  • 属于低级别操作;需要了解Mongo查询的工作原理

MongoRepository

  • 更易于使用,因为它们是更高层次的抽象(90%的情况下)
  • 友好的语法可用于过滤数据
  • 建立在JPA之上,具有一致的语法,与SQL存储库相同的方法
  • 并非所有情况都适用,当需要更复杂的查询时有时需要退回到 MongoTemplate。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接