/codi/mongodb/src/main/java/mongodb/exercicis/consultes/ExerciciConsultes7.java

https://gitlab.com/arturo1204m/DAM-2n-POO-i-acces-a-dades · Java · 47 lines · 39 code · 8 blank · 0 comment · 4 complexity · f662e44eb2071ec8f0051dc439d4d574 MD5 · raw file

  1. package mongodb.exercicis.consultes;
  2. import static com.mongodb.client.model.Filters.eq;
  3. import static com.mongodb.client.model.Sorts.ascending;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import org.bson.Document;
  7. import com.mongodb.MongoClient;
  8. import com.mongodb.client.MongoCollection;
  9. import com.mongodb.client.MongoDatabase;
  10. public class ExerciciConsultes7 {
  11. public static void main(String[] args) {
  12. MongoClient client = new MongoClient();
  13. MongoDatabase db = client.getDatabase("exemples");
  14. MongoCollection<Document> coll = db.getCollection("zips");
  15. List<Document> zips = coll.find(eq("city", "Springfield".toUpperCase())).sort(ascending("state", "_id")).into(new ArrayList<Document>());
  16. System.out.println("Hi ha "+zips.size()+" poblacions anomenades Springfield.");
  17. Document lastZip = null;
  18. double lon=0, lat=0;
  19. int count=0;
  20. for (Document zip : zips) {
  21. if (lastZip==null || !lastZip.getString("state").equals(zip.getString("state"))) {
  22. if (lastZip!=null) {
  23. System.out.println("Població: "+lastZip.getString("city")+" - Localització: ("+lon/count+", "+lat/count+")");
  24. }
  25. System.out.println("Estat de "+zip.getString("state"));
  26. lat=lon=0;
  27. count=0;
  28. }
  29. @SuppressWarnings("unchecked")
  30. List<Double> latlon = (List<Double>)zip.get("loc");
  31. lat+=latlon.get(0);
  32. lon+=latlon.get(1);
  33. count++;
  34. lastZip = zip;
  35. }
  36. System.out.println("Població: "+lastZip.getString("city")+" - Localització: ("+lon/count+", "+lat/count+")");
  37. client.close();
  38. }
  39. }