Skip to content
广告❤️成为赞助商

Pipeline Function Builder

Quickly build pipeline conditions using MongoPlus

Notes:

  • Removed in version 2.1.2+
  • The following pipeline functions with parameters of BasicDBObject and Bson are custom conditions; you can build your own pipeline parameters, including using the custom method

match

java
match(QueryChainWrapper<T, ?> queryChainWrapper);
match(BasicDBObject basicDBObject);
match(Bson bson);
  • Filters documents, passing only matching documents to the next stage in the pipeline
  • Example: match(new Wrapper<>().eq(User::getUserName,"Zhang San"))

sort

java
sort(Order... orders);
sort(List<Order> orderList);
sortAsc(SFunction<T,Object>... field);  // ascending order
sortAsc(String... field); // ascending order
sortDesc(SFunction<T,Object>... field); // descending order
sortDesc(String... field);  // descending order
sort(BasicDBObject basicDBObject);
sort(Bson bson);
  • Sorts all output documents
  • Example: sort(new Order(1,"createTime"));

limit

java
limit(long limit);
  • Limits the number of documents in the pipeline
  • Example: limit(10)

skip

java
skip(long skip);
  • Skips a specified number of documents and returns the remaining documents (current page)
  • Example: skip(1)

group

java
group(SFunction<T,Object> _id);
group(String _id);
group(List<GroupField> _id);
group(Accumulator... _id);
group(SFunction<T,Object> _id,Accumulator accumulator);
group(String _id,Accumulator accumulator);
group(SFunction<T,Object> _id , Accumulator... accumulator);
group(String _id , Accumulator... accumulator);
group(SFunction<T,Object> _id , List<Accumulator> accumulatorList);
group(String _id , List<Accumulator> accumulatorList);
group(SFunction<T,Object> _id , String resultMappingField,String operator,String field);
group(String _id , String resultMappingField,String operator,String field);
group(SFunction<T,Object> _id , String resultMappingField, GroupTypeEnum operator, String field);
group(String _id , String resultMappingField, GroupTypeEnum operator, String field);
group(SFunction<T,Object> _id , SFunction<T,Object> resultMappingField, String operator, SFunction<T,Object> field);
group(String _id , SFunction<T,Object> resultMappingField, String operator, SFunction<T,Object> field);
group(String _id , SFunction<T,Object> resultMappingField, GroupTypeEnum operator, SFunction<T,Object> field);
group(SFunction<T,Object> _id , SFunction<T,Object> resultMappingField, GroupTypeEnum operator, SFunction<T,Object> field);
group(BasicDBObject basicDBObject);
group(Bson bson);
  • Groups all documents and computes aggregate results
  • Accumulator objects define accumulator conditions. You can use com.mongoplus.conditions.accumulator.AccumulatorInterface to build accumulators, which provide methods like first, last, sum, avg, etc.
  • Example: group(User::getName,new AccumulatorInterface<>().sum(User::getAge))

lookup

java
lookup(String from,String localField,String foreignField,String as);
lookup(String from, List<Let> letList, AggregateChainWrapper<T,?> pipeline, String as);
lookup(BasicDBObject basicDBObject);
lookup(Bson bson);
  • Performs join operations between collections
  • Example: lookup("test","roleId","id","roleName")

addFields

java
addFields(String resultMappingField,SFunction<T,Object> field);
addFields(SFunction<T,Object> resultMappingField,SFunction<T,Object> field);
addFields(SFunction<T,Object> resultMappingField,String field);
addFields(String resultMappingField,String field);
addFields(AddFields... addFields);
addFields(List<AddFields> addFieldsList);
addFields(BasicDBObject basicDBObject);
addFields(Bson bson);
  • Adds new fields to a collection; you can use AddFields objects for construction
  • Example: addFields("roleName","roleId")

unwind

java
unwind(SFunction<T, Object> field);
unwind(Boolean preserveNullAndEmptyArrays , SFunction<T, Object> field);
unwind(String field);
unwind(Boolean preserveNullAndEmptyArrays,String field);
unwind(BasicDBObject basicDBObject);
unwind(Bson bson);
  • Deconstructs array fields to generate a document copy for each element
  • preserveNullAndEmptyArrays specifies whether to keep empty or null arrays
  • Example: unwind(User::getRoleList)

sample

java
sample(long size);
  • Randomly selects a specified number of documents
  • Example: sample(1)

replaceRoot

java
replaceRoot(SFunction<T,Object>... field);
replaceRoot(ReplaceRoot... replaceRoot);
replaceRoot(List<ReplaceRoot> replaceRootList);
replaceRoot(String... field);
replaceRoot(Boolean reserveOriginalDocument,SFunction<T,Object>... field);
replaceRoot(Boolean reserveOriginalDocument,String... field);
replaceRoot(BasicDBObject basicDBObject);
replaceRoot(Bson bson);
  • Replaces the root document with specified fields
  • Example: replaceRoot(User::UserName,User::getUserRole)

unionWith

java
unionWith(String collectionName);
unionWith(BasicDBObject basicDBObject);
unionWith(Bson bson);
  • Performs unionAll
  • Example: unionWith("t_user")

out

java
out(String db,String coll);
out(BasicDBObject basicDBObject);
out(Bson bson);
  • Outputs the pipeline documents to a specified collection, creating it if it doesn't exist
  • Must be the last step in the pipeline; outputting to an existing collection overwrites original data
  • Example: out("mongoplus","user")

custom

java
custom(BasicDBObject basicDBObject);
custom(Bson bson);
  • Custom pipeline operations; fully customizable
  • Example: custom(new BasicDBObject("$out",new BasicDBObject("role")));

Lambda-style chained calls

java
UserService userService;

List<User> userList = userService.lambdaAggregate().match().....list();