Spring MongoTemplate запрос в подзадаче массива с использованием $ filter и $ slice [duplicate]

Мне нужно было реализовать это в PowerShell, надеюсь, что это может помочь кому-то другому. Некоторые примечания об этом методе

  1. Не разделяйте ни одну из строк, или вычисление будет неправильным
  2. Для вычисления в KM удалите * 1000 при расчете $ distance
  3. Измените $ earthsRadius = 3963.19059 и удалите * 1000 при расчете $ distance, чтобы вычислить расстояние в милях
  4. Я использую Haversine, поскольку другие сообщения указывают на формулы Винценти гораздо точнее
    Function MetresDistanceBetweenTwoGPSCoordinates($latitude1, $longitude1, $latitude2, $longitude2)  
    {  
      $Rad = ([math]::PI / 180);  
    
      $earthsRadius = 6378.1370 # Earth's Radius in KM  
      $dLat = ($latitude2 - $latitude1) * $Rad  
      $dLon = ($longitude2 - $longitude1) * $Rad  
      $latitude1 = $latitude1 * $Rad  
      $latitude2 = $latitude2 * $Rad  
    
      $a = [math]::Sin($dLat / 2) * [math]::Sin($dLat / 2) + [math]::Sin($dLon / 2) * [math]::Sin($dLon / 2) * [math]::Cos($latitude1) * [math]::Cos($latitude2)  
      $c = 2 * [math]::ATan2([math]::Sqrt($a), [math]::Sqrt(1-$a))  
    
      $distance = [math]::Round($earthsRadius * $c * 1000, 0) #Multiple by 1000 to get metres  
    
      Return $distance  
    }
    
0
задан Gaurav Agrawal 27 December 2016 в 15:10
поделиться

1 ответ

Не используйте типизированный вариант агрегации агрегации, который по существу пытается перевести ссылки свойств в типе ввода (AgentDataStorage) в имена полей и не удается, когда он не находит ссылки на свойства, в вашем случае dataPoints.TOTAL_BUS_COMMISSION.

Используйте

AggregationResults<AggregationResult> results = mongoTemplate.aggregate(aggregation,
    "agent_data_storage", AggregationResult.class);
1
ответ дан Veeram 18 August 2018 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: