sql >> Database teknologi >  >> NoSQL >> MongoDB

Fjederstøvle med MongoTemplate

For yderligere forklaring kan du endda bruge begge på samme tid.

MongoRepository er blot et abstraktionslag, som MongoTemplate , men med enklere grænseflade.

Hvis du fandt ud af at udføre en form for operation er for kompliceret med Spring oprettelse af forespørgsler , og på en eller anden måde ikke ønsker at bruge @Query (du vil f.eks. have et tip af IDE-typen, når du konstruerer forespørgsler), kan du udvide MongoRepository og brug MongoTemplate som forespørgselsmekanismen.

Først udvider vi vores lager med vores brugerdefinerede grænseflade.

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

Deklarer derefter grænsefladen.

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

Og implementer derefter vores brugerdefinerede lager. Vi kan autokoble MongoTemplate her og brug den til at forespørge 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);
    }
}

Til sidst bruger vi ArticleRepository .

@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

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


  1. mongodb - Find dokument med nærmeste heltalsværdi

  2. Er Mongodb Aggregation framework hurtigere end kort/reducer?

  3. Forbedringer af operationel databaseydelse i CDP Private Cloud Base 7 vs CDH5

  4. Hvordan henter og udskriver jeg pymongo.cursor.Cursor-objekter?