官方文档https://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/index.html
查询:
***************************************************************************
mongoTemple查询和修改
@Autowired
MongoTemplate mongoTemp;
Criteria criteria = Criteria.where("name").regex("www").andOperator(Criteria.where("creatTime").gte(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2018-06-20 21:48:54")));
mongoTemp.find(new Query(criteria), Movie.class);
**************************************************************************
List<User> findByName(String name);
List<User> findByNameAndAge(String name,String age);
long countByName(String name);
原生查询语句
@Query(value="{'$and':[{'name':{'$regex':?0}}]}")
public List<Movie> findByName(String name);
Keyword | Sample | Logical result |
---|
After | findByBirthdateAfter(Date date) | {"birthdate" : {"$gt" : date}} |
GreaterThan | findByAgeGreaterThan(int age) | {"age" : {"$gt" : age}} |
GreaterThanEqual | findByAgeGreaterThanEqual(int age) | {"age" : {"$gte" : age}} |
Before | findByBirthdateBefore(Date date) | {"birthdate" : {"$lt" : date}} |
LessThan | findByAgeLessThan(int age) | {"age" : {"$lt" : age}} |
LessThanEqual | findByAgeLessThanEqual(int age) | {"age" : {"$lte" : age}} |
Between | findByAgeBetween(int from, int to) | {"age" : {"$gt" : from, "$lt" : to}} |
In | findByAgeIn(Collection ages) | {"age" : {"$in" : [ages…]}} |
NotIn | findByAgeNotIn(Collection ages) | {"age" : {"$nin" : [ages…]}} |
IsNotNull , NotNull | findByFirstnameNotNull() | {"firstname" : {"$ne" : null}} |
IsNull , Null | findByFirstnameNull() | {"firstname" : null} |
Like , StartingWith , EndingWith | findByFirstnameLike(String name) | {"firstname" : name} (name as regex) |
NotLike , IsNotLike | findByFirstnameNotLike(String name) | {"firstname" : { "$not" : name }} (name as regex) |
Containing on String | findByFirstnameContaining(String name) | {"firstname" : name} (name as regex) |
NotContaining on String | findByFirstnameNotContaining(String name) | {"firstname" : { "$not" : name}} (name as regex) |
Containing on Collection | findByAddressesContaining(Address address) | {"addresses" : { "$in" : address}} |
NotContaining on Collection | findByAddressesNotContaining(Address address) | {"addresses" : { "$not" : { "$in" : address}}} |
Regex | findByFirstnameRegex(String firstname) | {"firstname" : {"$regex" : firstname }} |
(No keyword) | findByFirstname(String name) | {"firstname" : name} |
Not | findByFirstnameNot(String name) | {"firstname" : {"$ne" : name}} |
Near | findByLocationNear(Point point) | {"location" : {"$near" : [x,y]}} |
Near | findByLocationNear(Point point, Distance max) | {"location" : {"$near" : [x,y], "$maxDistance" : max}} |
Near | findByLocationNear(Point point, Distance min, Distance max) | {"location" : {"$near" : [x,y], "$minDistance" : min, "$maxDistance" : max}} |
Within | findByLocationWithin(Circle circle) | {"location" : {"$geoWithin" : {"$center" : [ [x, y], distance]}}} |
Within | findByLocationWithin(Box box) | {"location" : {"$geoWithin" : {"$box" : [ [x1, y1], x2, y2]}}} |
IsTrue , True | findByActiveIsTrue() | {"active" : true} |
IsFalse , False | findByActiveIsFalse() | {"active" : false} |
Exists | findByLocationExists(boolean exists) | {"location" : {"$exists" : exists }} |
KeyWord可以用and方法连起来。
例如:
List<DiscountCode> findFirst5ByActivityIdInAndEndTimeAfterAndStatus(List<ObjectId> activityIds, Date endTime,String status);
删除:
List <Person> deleteByLastname(String lastname);
Long deletePersonByLastname(String lastname);