2015-05-20 4 views
1

Я использую следующий запрос mongo для получения максимальной температуры. Может ли кто-нибудь помочь, как реализовать в java, используя драйвер mongo java, используя BasicDBObject и DBObject?Выполнение запроса mongodb в java с использованием драйвера java mongo

db.EventLog.aggregate(
    [ 
    { 
     $group: 
     { 
      _id: "$_id", 
      maxInnerTemp: { $max: { $concat : [ "0", "$fields.innerTemp"]}} 
     } 
    } 
    ] 
) 

ответ

0

Используйте mongo java aggregation как ниже код (не тестировался):

// $group operation 
BasicDBList concat = new BasicDBList(); 
concat.add("0"); 
concat.add("$fields.innerTemp"); 
DBObject groupFields = new BasicDBObject("_id", "$_id"); 
groupFields.put("maxInnerTemp", new BasicDBObject("$max", new BasicDBObject("$concat", concat)); 
DBObject group = new BasicDBObject("$group", groupFields); 
    // run aggregation 
    List <DBObject> pipeline = Arrays.asList(group); AggregationOutput output = collectionName.aggregate(pipeline); 
    for (DBObject result: output.results()) { 
     System.out.println(result); 
    } 
+0

THQ так это помогло мне много –

+0

, как я могу найти минимум и максимум поля строкового типа с с использованием итерации –

+0

сначала преобразовать строковый тип данных в 'Number', а затем попытаться реализовать с помощью любого простого java-метода для поиска min и max. – Yogesh