sql >> Databáze >  >> NoSQL >> MongoDB

Jarní vlastní dotaz se stránkovatelným

Jak jste zjistili, MongoTemplate nepodporuje úplnou abstrakci stránky. Jak řekl KneeLess, můžete použít @Query -Anotace k provedení některých vlastních dotazů.

V případě, že vám to nestačí, můžete využít Spring Repository PageableExecutionUtils v kombinaci s vaší MongoTemplate.

Například takto:

@Override
public Page<XXX> findSophisticatedXXX(/* params, ... */ @NotNull Pageable pageable) {

    Query query = query(
            where("...")
            // ... sophisticated query ...
    ).with(pageable);

    List<XXX> list = mongoOperations.find(query, XXX.class);
    return PageableExecutionUtils.getPage(list, pageable,
              () -> mongoOperations.count((Query.of(query).limit(-1).skip(-1), XXX.class));
}

Spring Repository dělají totéž. Jak můžete vidět zde , spustí také dva dotazy.



  1. Elegantnější způsob, jak zvládnout filtrování hodnot v aplikaci Angular

  2. Filtrovat pole v mongodb

  3. Express.js a trvání relace connect-mongo

  4. Pochopení WriteConcern v MongoDB C#