官方文档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);
KeywordSampleLogical 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);