Pipeline Function Builder
Quickly build pipeline conditions using MongoPlus
Notes:
- Removed in version 2.1.2+
- The following pipeline functions with parameters of
BasicDBObject
andBson
are custom conditions; you can build your own pipeline parameters, including using thecustom
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 usecom.mongoplus.conditions.accumulator.AccumulatorInterface
to build accumulators, which provide methods likefirst
,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();