sql >> Databasteknik >  >> NoSQL >> MongoDB

Spring Boot med MongoTemplate

För ytterligare förklaring kan du till och med använda båda samtidigt.

MongoRepository är bara ett abstraktionslager, som MongoTemplate , men med enklare gränssnitt.

Om du hittade att göra någon form av operation är det för komplicerat med Spring skapande av frågor , och på något sätt inte vill använda @Query (om du till exempel vill ha IDE-typtips när du konstruerar frågor), kan du utöka MongoRepository och använd MongoTemplate som frågemekanism.

Först utökar vi vårt arkiv med vårt anpassade gränssnitt.

@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}

Deklarera sedan gränssnittet.

public interface CustomArticleRepository {
    List<Article> getArticleFilteredByPage(int page, int num);
}

Och implementera sedan vårt anpassade arkiv. Vi kan koppla in MongoTemplate automatiskt här och använd den för att fråga i databasen.

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);
    }
}

Till sist använder vi ArticleRepository .

@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

    public List<Article> getArticleByPage() {
        return articleRepository.getArticleFilteredByPage(1, 10);
    }
}


  1. MongoDB listar databaser med givet prefix i Go

  2. g++ kan inte statisk länk libmongcxx(r3.0.2) men dynamisk länk fungerar

  3. Aggregerande efter datum i Mongodb

  4. Hur kan jag minska avvecklingssteg i aggregeringspipeline för kapslade dokument?