1. 程式人生 > >Spring整合MongoDB實現多個or的範圍查詢

Spring整合MongoDB實現多個or的範圍查詢

Criteria c1= Criteria.where("year").gte(startYear).lte(endYear).and("month").is(endMonth).and("day").gte(startDay).lte(endDay)
            .and("hour").gte(startHour).lte(endHour).and("minute").is(startMinute).and("second").gte(startSecond);
Criteria c2=Criteria.where("year").gte(startYear).lte(endYear).and("month").is(endMonth).and("day").gte(startDay).lte(endDay)
            .and("hour").gte(startHour).lte(endHour).and("minute").is(endMinute).and("second").lte(endSecond);
Criteria c3 =Criteria.where("year").gte(startYear).lte(endYear).and("month").is(endMonth).and("day").gte(startDay).lte(endDay)
            .and("hour").gte(startHour).lte(endHour).and("minute").gt(startMinute).lt(endMinute);
Criteria cr = new Criteria();

query = new Query(cr.orOperator(c1,c2,c3));
                
getMongoTemplate().find(query, SensorCollection.class);

附帶Criteria方法:

Criteria

Mongodb

說明

Criteria and (String key)

$and

並且

Criteria andOperator (Criteria…​ criteria)

$and

並且

Criteria orOperator (Criteria…​ criteria)

$or

或者

Criteria gt (Object o)

$gt

大於

Criteria gte (Object o)

$gte

大於等於

Criteria in (Object…​ o)

$in

包含

Criteria is (Object o)

$is

等於

Criteria lt (Object o)

$lt

小於

Criteria lte (Object o)

$lte

小等於

Criteria nin (Object…​ o)

$nin

不包含