spring data mongodb,使用MongoRepository还是MongoTemplate?

时间:2012-03-02 16:29:17

标签: spring mongodb spring-data

如果使用MongoRepository,您可以使用以下代码:

@Repository
public interface UserRepo extends MongoRepository<User, String> {

    // additional methods go here 

} 

然后你做userRepo.save()find()等来做CRUD操作。

或者你只是MongoTemplate并做CRUD操作。

我的问题是首选哪个?每种方法的优缺点是什么?谢谢!

2 个答案:

答案 0 :(得分:5)

好吧,通过查看源代码MongoRepository消耗mongoTemplate并提供一组常用的DAO API,换句话说,使用MongoRepository是首选方式。

答案 1 :(得分:0)

MongoTemplate

  • 更灵活,更强大(用于更复杂的查询,聚合)
  • 低级别;您需要了解Mongo查询的工作方式

MongoRepository

  • 易于使用,因为它们是较高的抽象(90%的情况)
  • 用于过滤数据的友好语法
  • 建立在JPA之上,语法一致,方法与基于SQL的存储库相同
  • 不要在所有用例上使用,当您需要更复杂的查询时,有时您需要使用MongoTemplate。