2016-11-28 46 views
0

我是MongoTemplate的新手。我想定义一个org.springframework.data.mongodb.core.query.Query和org.springframework.data.mongodb.core.query.Criteria从具有复杂文档结构的集合中获取数据。 这是文件如何为复杂文档结构编写MongoTemplate查询和标准?

{ 
"_id" : { 
    "SId" : "ANBS", 
    "AssetId" : "ANBS_BS21", 
    "ST" : NumberLong(1479114000) //StartDate 
}, 
"ET" : NumberLong(1479117599) //EndDate, 
"TS" : [ 
    NumberLong(1479114000), 
    NumberLong(1479114600), 
    NumberLong(1479115200), 
    NumberLong(1479115800), 
    NumberLong(1479116400), 
    NumberLong(1479117000) 
], 
"Tags" : { 
    "ActivePower" : {    
     "Avg" : [ 
      16427.575, 
      16991.01, 
      16708.2016666667, 
      16488.335, 
      17230.1933333333, 
      15996.9783333333 
     ] 
    }, 
    "WindSpeed" : {    
     "Avg" : [ 
      64.4266666666667, 
      60.8583333333333, 
      65.275, 
      62.8766666666667, 
      63.2166666666667, 
      63.14 
     ] 
    } 
} 

我想获取所有给定TIMERANGE(开始时间和结束时间),其中由assetid =文件? AND startTime> = ST AND endTime < = ET。

有人可以帮我解决这个问题吗?我不想要mongo查询,但我想要基于MongoTemplate的查询和条件。提前致谢。

+0

请添加您到目前为止尝试过的任何 – Veeram

回答

1

我得到了一个解决方案,它非常简单。发布这个答案,以便它可以帮助别人。

Query query = new Query(Criteria 
      .where("_id.SId").is(siteId) 
      .and("_id.AssetId").is(assetId) 
      .and("_id.ST").gte(startTimeRange) 
      .and("ET").lte(endTimeRange)); 
return mongoTemplate.find(query, MyCollection.class, "mycollection");