2017-09-13 171 views
0

Morphia中以下Mongo查詢的等效物是什麼?Morphia查詢日期範圍

db.events.find({ "date": { $gte: ISODate("2001-01-01") , $lt: ISODate("2001-01-02")} }) 

目前,我有以下代碼

Query<Event> query = dataStore.find(Event.class); 
query.field("date").greaterThanOrEq(startDate).field("date").lessThan(endDate); 

,但它會導致以下蒙戈查詢

{ "$and" : [ { "date" : { "$gte" : { "$date" : "2001-01-01T00:00:00.000Z"}}} , { "date" : { "$lt" : { "$date" : "2001-01-02T00:00:00.000Z"}}}]} 

我想最終的結果是一樣的,但生成的查詢更冗長。

回答

0

使用criteriaadd方法

喜歡的東西

Query<Event> query = datastore.find(Event.class); 
query.criteria("date").greaterThanOrEq(startDate).add(query.criteria("date").lessThan(endDate)); 
0

您需要創建一個查詢然後加入日期範圍條件像緊隨其後。

Query<Event> queryForEvent = ds.createQuery(Event.class); 
    queryForEvent.field("date").greaterThanOrEq(startDate); 
    queryForEvent.field("date").lessThan(endDate); 
    List<Event> eventList = queryForEvent.asList(); 

希望你會發現它有用。