Example usage for com.mongodb AggregationOutput results

List of usage examples for com.mongodb AggregationOutput results

Introduction

In this page you can find the example usage for com.mongodb AggregationOutput results.

Prototype

List results

To view the source code for com.mongodb AggregationOutput results.

Click Source Link

Usage

From source file:HW4.java

@SuppressWarnings("empty-statement")
private void executeQueryButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_executeQueryButtonActionPerformed

    DefaultTableModel dtm = new DefaultTableModel(0, 0);

    //nothing is selected
    if (finalCat.isEmpty()) {
        if (!Address.isEmpty() && !proximity.isEmpty()) {

            if (Address.contains("3799 S Las Vegas Blvd Eastside Las Vegas, NV 89119")) {
                longitude = -115.16768879999999;
                latitude = 36.103017899999998;
            }/*from   w  w  w .  j  a v  a  2 s  .  c  o m*/

            if (Address.equalsIgnoreCase("6002 S Durango Dr Ste 100 Spring Valley Las Vegas, NV 89113")) {
                longitude = -115.27906539999999;
                latitude = 36.079256100000002;
            }

            if (Address.equalsIgnoreCase("1801 E Baseline Rd, #101 Ste 101 Tempe, AZ 85283")) {
                longitude = -111.90860979259;
                latitude = 33.377052104372098;
            }

            if (Address.equalsIgnoreCase("1033 S Park St Bay Creek Madison, WI 53715")) {
                longitude = -89.397478300000003;
                latitude = 43.055539400000001;
            }

            if (Address.equalsIgnoreCase("University Center II Lot Phoenix, AZ 85008")) {
                longitude = -112.02540759999999;
                latitude = 33.451857400000002;
            }
            DB dbBusiness = mongoClient.getDB("business");
            DBCollection collBusiness = dbBusiness.getCollection("business");

            BasicDBList geoCoord = new BasicDBList();

            geoCoord.add(longitude);
            geoCoord.add(latitude);

            BasicDBList geoParams = new BasicDBList();
            geoParams.add(geoCoord);
            geoParams.add(Integer.parseInt(proximity) / 1018.59);

            BasicDBObject query = new BasicDBObject("loc",
                    new BasicDBObject("$geoWithin", new BasicDBObject("$center", geoParams)));

            resultTable.setModel(dtm);
            String header[] = new String[] { "B_ID", "Business", "City", "State", "Stars" };
            dtm.setColumnIdentifiers(header);
            DBCursor cursorForBusiness = collBusiness.find(query);
            while (cursorForBusiness.hasNext()) {
                //pointInterest.add(cursorForBusiness.next());
                Object[] row = new Object[5];
                row[0] = cursorForBusiness.next().get("business_id");
                row[1] = cursorForBusiness.next().get("name");
                row[2] = cursorForBusiness.next().get("city");
                row[3] = cursorForBusiness.next().get("state");
                row[4] = cursorForBusiness.next().get("stars");

                dtm.addRow(row);
            }

        }

        if (!memberSince.isEmpty() || !operReviewCount.isEmpty() || !operNoOfFriends.isEmpty()
                || !operAvgStar.isEmpty() || !valueReviewCount.isEmpty() || !valueNoOfFriends.isEmpty()
                || !valueAvgStar.isEmpty() || !andOrAttribute.isEmpty() || !operNoOfVotes.isEmpty()
                || !valueNoOfVotes.isEmpty()) {

            DB dbUser = mongoClient.getDB("user");
            DBCollection collUser = dbUser.getCollection("user");
            BasicDBObject andQuery = new BasicDBObject();
            List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
            try {
                if (!memberSince.isEmpty()) {
                    obj.add(new BasicDBObject("yelping_since", memberSince));
                }
                if (!valueReviewCount.isEmpty()) {
                    int vrc = Integer.parseInt(valueReviewCount);
                    BasicDBObject rCount = null;
                    if (operReviewCount.equals(">")) {
                        rCount = new BasicDBObject("review_count", new BasicDBObject("$gt", vrc));
                        //rCount = new BasicDBObject("$where", "review_count >" + vrc);
                    }
                    if (operReviewCount.equals("<")) {
                        rCount = new BasicDBObject("review_count", new BasicDBObject("$lt", vrc));
                        //rCount = new BasicDBObject("$where", "review_count <" + vrc);
                    }
                    if (operReviewCount.equals("=")) {
                        rCount = new BasicDBObject("review_count", vrc);
                        // rCount = new BasicDBObject("$where", "review_count =" + vrc);
                    }

                    obj.add(new BasicDBObject(rCount));
                }
                if (!valueNoOfFriends.isEmpty()) {
                    int vnf = Integer.parseInt(valueNoOfFriends);
                    BasicDBObject vFriends = null;
                    if (operNoOfFriends.equals(">")) {
                        vFriends = new BasicDBObject("$where", "this.friends.length >" + vnf);
                    }
                    if (operNoOfFriends.equals("<")) {
                        vFriends = new BasicDBObject("$where", "this.friends.length <" + vnf);
                    }
                    if (operNoOfFriends.equals("=")) {
                        vFriends = new BasicDBObject("$where", "this.friends.length =" + vnf);
                    }

                    obj.add(new BasicDBObject(vFriends));
                }
                if (!valueAvgStar.isEmpty()) {
                    Double doubleValueAvgStar = Double.parseDouble(valueAvgStar);
                    BasicDBObject avgStarValue = null;
                    if (operAvgStar.equals(">")) {
                        avgStarValue = new BasicDBObject("average_stars",
                                new BasicDBObject("$gt", doubleValueAvgStar));
                        // avgStarValue = new BasicDBObject("$where", "average_stars >" + doubleValueAvgStar);
                    }
                    if (operAvgStar.equals("<")) {
                        avgStarValue = new BasicDBObject("average_stars",
                                new BasicDBObject("$lt", doubleValueAvgStar));
                        // avgStarValue = new BasicDBObject("$where", "average_stars <" + doubleValueAvgStar);
                    }
                    if (operAvgStar.equals("=")) {
                        avgStarValue = new BasicDBObject("average_stars", doubleValueAvgStar);
                        // avgStarValue = new BasicDBObject("$where", "average_stars =" + doubleValueAvgStar);
                    }

                    obj.add(new BasicDBObject(avgStarValue));

                }
                if (!valueNoOfVotes.isEmpty()) {
                    //                                BasicDBObject noOfVotesValue = null;
                    //                                 if (operNoOfVotes.equals(">")) {
                    //                            noOfVotesValue = new BasicDBObject("average_stars", new BasicDBObject("$gt", valueNoOfVotes));
                    //                        }
                    //                        if (operNoOfVotes.equals("<")) {
                    //                            noOfVotesValue = new BasicDBObject("average_stars", new BasicDBObject("$lt", valueNoOfVotes));
                    //                        }
                    //                        if (operNoOfVotes.equals("=")) {
                    //                            noOfVotesValue = new BasicDBObject("average_stars", new BasicDBObject("$eq", valueNoOfVotes));
                    //                        }   
                    //                        
                    //                        obj.add(new BasicDBObject(noOfVotesValue));

                }
                System.out.println(andOrAttribute);
                if (andOrAttribute.equalsIgnoreCase("AND")) {
                    System.out.println("Here");
                    andQuery.put("$and", obj);
                } else {
                    andQuery.put("$or", obj);
                }
                queryLabel.setText("<html><p>" + andQuery.toString() + "</p></html>");
                List<DBObject> outputMyList = new ArrayList<DBObject>();
                DBCursor cursor = collUser.find(andQuery);
                while (cursor.hasNext()) {
                    //System.out.println(cursor.next());
                    outputMyList.add(cursor.next());
                }

                resultTable.setModel(dtm);
                String header[] = new String[] { "U_ID", "User Name", "Yelping Since", "Avg Stars",
                        "Review Count" };
                // add header in table model     
                dtm.setColumnIdentifiers(header);
                for (DBObject temp : outputMyList) {
                    //System.out.println("Business Name : " + temp.get("name") + " Category :  " + temp.get("categories"));
                    Object[] row = new Object[5];
                    row[0] = temp.get("user_id");
                    row[1] = temp.get("name");
                    row[2] = temp.get("yelping_since");
                    row[3] = temp.get("average_stars");
                    row[4] = temp.get("review_count");

                    dtm.addRow(row);
                }

            } catch (Exception e) {

            }

        } else {
            queryLabel.setText("Please select atleast one category from business");
        }
    } //only cat selected
      //////////////////////////Business//////////////////////////////////////////////////////////
    if (finalCat.size() > 0) {
        DB dbBusiness = mongoClient.getDB("business");
        DBCollection collBusiness = dbBusiness.getCollection("business");
        if (!fromCheckin.isEmpty() && !fromCheckinHour.isEmpty() && !toCheckin.isEmpty()
                && !toCheckinHour.isEmpty() && !operationCheckin.isEmpty() && !valueCheckin.isEmpty()) {
            DB dbCheckin = mongoClient.getDB("checkin");
            DBCollection collCheckin = dbCheckin.getCollection("checkin");

            if (!fromReview.isEmpty() && !toReview.isEmpty() && !operationStar.isEmpty() && !valueStar.isEmpty()
                    && !operationVote.isEmpty() && !valueVote.isEmpty()) {
                //////////////////////Category, Checkin and Review///////////////////////////////////////////////////
                DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
                String fromDate1 = fromReview;
                String fromdate = fromDate1 + "T00:00:00Z";
                String toDate1 = toReview;
                String todate = toDate1 + "T00:00:00Z";
                int starValue = Integer.parseInt(valueStar);
                int voteValue = Integer.parseInt(valueVote);
                StringBuffer finalQuery = new StringBuffer();
                DB dbReview = mongoClient.getDB("review");
                DBCollection collReview = dbReview.getCollection("review");
                int j = 0;
                int l = 0;

                HashMap<String, Integer> tempCheckin = new HashMap<String, Integer>();
                ArrayList<String> finalCheckinBid = new ArrayList<String>();

                ArrayList<CheckinDetail> checkinList = new ArrayList<CheckinDetail>();
                //System.out.println("I am in checkin box");
                String[] arrayDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
                        "Saturday" };
                for (int i = 0; i < arrayDays.length; i++) {
                    if (fromCheckin == arrayDays[i]) {
                        j = i;
                    } else if (toCheckin == arrayDays[i]) {
                        l = i;
                    }
                }
                ArrayList<Integer> days = new ArrayList<Integer>();
                days.add(j);
                int temfromday = j;
                days.add(l);

                int difference = CheckForDay(fromCheckin, toCheckin);
                if (difference > 0) {
                    for (int k = 0; k < difference; k++) {
                        j = j + 1;
                        if (j == 7) {
                            j = 0;
                        }
                        days.add(j);

                    }
                }
                List<DBObject> categoryIdList = new ArrayList<DBObject>();
                for (String t : finalCat) {
                    BasicDBObject whereQueryBusiness = new BasicDBObject();
                    BasicDBObject fieldsBusiness = new BasicDBObject();
                    fieldsBusiness.put("business_id", 1);
                    whereQueryBusiness.put("categories", t);
                    DBCursor cursorForBusiness = collBusiness.find(whereQueryBusiness, fieldsBusiness);
                    finalQuery.append(whereQueryBusiness);
                    while (cursorForBusiness.hasNext()) {
                        int i = 1;
                        categoryIdList.add(cursorForBusiness.next());
                        i++;
                    }
                } //for FINALCAT
                List<DBObject> checkinCategoryIdList = new ArrayList<DBObject>();
                for (DBObject s : categoryIdList) {
                    //System.out.println(s.get("business_id"));
                    BasicDBObject whereQueryCheckin = new BasicDBObject();
                    whereQueryCheckin.put("business_id", s.get("business_id"));
                    DBCursor cursorForCheckin = collCheckin.find(whereQueryCheckin);
                    while (cursorForCheckin.hasNext()) {
                        int i = 1;
                        checkinCategoryIdList.add(cursorForCheckin.next());
                        i++;
                    }
                } //for DBObject s:categoryIdList
                for (DBObject u : checkinCategoryIdList) {
                    String full = u.get("checkin_info").toString();
                    String a = full.replaceAll("[{}]", "");
                    String[] b = a.split(",");
                    for (int x = 0; x < b.length; x++) {
                        CheckinDetail objCheckin = new CheckinDetail();
                        String[] c = b[x].split(":");

                        String d = c[0].replaceAll("[\"]", "");
                        String[] e = d.split("-");
                        objCheckin.b_Id = u.get("business_id").toString();
                        objCheckin.fromTime = Integer.parseInt(e[0].replaceAll("\\s+", ""));
                        objCheckin.checkinDay = Integer.parseInt(e[1].replaceAll("\\s+", ""));
                        objCheckin.CountValue = Integer.parseInt(c[1].replaceAll("\\s+", ""));
                        ;
                        checkinList.add(objCheckin);
                    }
                }

                for (CheckinDetail e : checkinList) {
                    for (int f : days) {
                        if ((f == temfromday && temfromday == e.checkinDay
                                && Integer.parseInt(fromCheckinHour) <= e.fromTime)
                                || (f == l && l == e.checkinDay
                                        && Integer.parseInt(toCheckinHour) >= e.fromTime)
                                || (f == e.checkinDay && f != temfromday && f != l)) {
                            //                                    System.out.println(e.b_Id);
                            //                                    System.out.println(e.CountValue);
                            if (tempCheckin.containsKey(e.b_Id)) {
                                tempCheckin.put(e.b_Id, tempCheckin.get(e.b_Id) + e.CountValue);
                            } else {
                                tempCheckin.put(e.b_Id, e.CountValue);
                            }

                        }
                    }
                }

                Iterator itr = tempCheckin.entrySet().iterator();
                while (itr.hasNext()) {
                    Map.Entry entry = (Map.Entry) itr.next();
                    if ((operationCheckin.contains("="))) {
                        if (entry.getValue() == valueCheckin) {
                            finalCheckinBid.add(entry.getKey().toString());
                        }
                    }
                    if ((operationCheckin.contains("<"))) {
                        if (Integer.parseInt(entry.getValue().toString()) < Integer.parseInt(valueCheckin)) {
                            finalCheckinBid.add(entry.getKey().toString());
                            //System.out.println("in <");
                        }
                    }
                    if ((operationCheckin.contains(">"))) {
                        if (Integer.parseInt(entry.getValue().toString()) > Integer.parseInt(valueCheckin)) {
                            finalCheckinBid.add(entry.getKey().toString());
                            //System.out.println("in >");
                        }
                    }
                }
                //abhi tak ki bid is in finalCheckinBid
                //                    for(String a :finalCheckinBid){
                //                    System.out.println(a);
                //                    }
                finalQuery.append(
                        "Stage{name='$match', value=Or Filter{filters=[Operator Filter{fieldName='checkin_info.2-3', operator='$exists', value=BsonBoolean{value=true}}, Operator Filter{fieldName='checkin_info.2-4', operator='$exists', value=BsonBoolean{value=true}}]}}\n"
                                + "Document{{$group=Document{{_id=$business_id, total1=Document{{$sum=$checkin_info.2-4}}, total2=Document{{$sum=$checkin_info.2-3}}}}}}\n"
                                + "Stage{name='$match', value=Operator Filter{fieldName='totalCheckins', operator='$gt', value=4}}");
                try {
                    List<Object> reviewCategoryIdList = new ArrayList<Object>();

                    DBObject match = new BasicDBObject("$match",
                            new BasicDBObject("date", new BasicDBObject("$gt", format.parse(fromdate))
                                    .append("$lt", format.parse(todate))));

                    DBObject groupFields = new BasicDBObject("_id", "$business_id");
                    groupFields.put("total1", new BasicDBObject("$sum", "$votes.funny"));
                    groupFields.put("total2", new BasicDBObject("$sum", "$votes.useful"));
                    groupFields.put("total3", new BasicDBObject("$sum", "$votes.cool"));
                    groupFields.put("totalStars", new BasicDBObject("$sum", "$stars"));
                    DBObject group = new BasicDBObject("$group", groupFields);

                    DBObject fields = new BasicDBObject("_id", 1);
                    BasicDBList addFields = new BasicDBList();
                    addFields.add("$total1");
                    addFields.add("$total2");
                    addFields.add("$total3");
                    fields.put("totalVotes", new BasicDBObject("$sum", addFields));
                    fields.put("totalStars", 1);
                    DBObject project = new BasicDBObject("$project", fields);
                    BasicDBObject votes = null;
                    BasicDBObject stars = null;
                    if (operationStar.equals(">")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$gt", starValue));
                    }
                    if (operationStar.equals("<")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$lt", starValue));
                    }
                    if (operationStar.equals("=")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$eq", starValue));
                    }
                    if (operationVote.equals(">")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$gt", voteValue));
                    }
                    if (operationVote.equals("<")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$lt", voteValue));
                    }
                    if (operationVote.equals("=")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$eq", voteValue));
                    }
                    List<BasicDBObject> list1 = new ArrayList<BasicDBObject>();
                    list1.add(new BasicDBObject(votes));
                    list1.add(new BasicDBObject(stars));
                    DBObject votesnStars = new BasicDBObject("$and", list1);
                    DBObject match2 = new BasicDBObject("$match", votesnStars);

                    AggregationOutput cursorForReview = collReview.aggregate(match, group, project, match2);
                    String query33 = match + "\n" + group + "\n" + project + "\n" + match2;
                    finalQuery.append(query33);

                    Iterable<DBObject> list = cursorForReview.results();
                    Iterator<DBObject> resultSet1 = list.iterator();
                    while (resultSet1.hasNext()) {
                        //                            System.out.println(resultSet1.next().get("_id"));
                        reviewCategoryIdList.add(resultSet1.next().get("_id"));
                    }
                    //                            System.out.println(reviewCategoryIdList.size());
                    //                            System.out.println(finalCheckinBid.size());
                    reviewCategoryIdList.retainAll(finalCheckinBid);
                    //                            System.out.println(reviewCategoryIdList.size());
                    //                        for (Object s : reviewCategoryIdList) { 
                    //                        System.out.println(s.toString());
                    //                        }

                    if (!Address.isEmpty() && !proximity.isEmpty()) {

                        if (Address.contains("3799 S Las Vegas Blvd Eastside Las Vegas, NV 89119")) {
                            longitude = -115.16768879999999;
                            latitude = 36.103017899999998;
                        }

                        if (Address.equalsIgnoreCase(
                                "6002 S Durango Dr Ste 100 Spring Valley Las Vegas, NV 89113")) {
                            longitude = -115.27906539999999;
                            latitude = 36.079256100000002;
                        }

                        if (Address.equalsIgnoreCase("1801 E Baseline Rd, #101 Ste 101 Tempe, AZ 85283")) {
                            longitude = -111.90860979259;
                            latitude = 33.377052104372098;
                        }

                        if (Address.equalsIgnoreCase("1033 S Park St Bay Creek Madison, WI 53715")) {
                            longitude = -89.397478300000003;
                            latitude = 43.055539400000001;
                        }

                        if (Address.equalsIgnoreCase("University Center II Lot Phoenix, AZ 85008")) {
                            longitude = -112.02540759999999;
                            latitude = 33.451857400000002;
                        }

                        List<String> pointInterest = new ArrayList<String>();
                        BasicDBList geoCoord = new BasicDBList();

                        geoCoord.add(longitude);
                        geoCoord.add(latitude);

                        BasicDBList geoParams = new BasicDBList();
                        geoParams.add(geoCoord);
                        geoParams.add(Integer.parseInt(proximity) / 1018.59);

                        BasicDBObject query = new BasicDBObject("loc",
                                new BasicDBObject("$geoWithin", new BasicDBObject("$center", geoParams)));

                        DBCursor cursorForBusiness = collBusiness.find(query);
                        finalQuery.append(query);
                        while (cursorForBusiness.hasNext()) {
                            pointInterest.add(cursorForBusiness.next().get("business_id").toString());

                        }
                        //                System.out.println(pointInterest.size());
                        //                System.out.println(reviewCategoryIdList.size());
                        reviewCategoryIdList.retainAll(pointInterest);
                        //                System.out.println(reviewCategoryIdList.size());
                    }

                    List<DBObject> outputMyList = new ArrayList<DBObject>();
                    BasicDBObject whereQuery = new BasicDBObject();
                    for (Object fianlBid2 : reviewCategoryIdList) {
                        //                        System.out.println(fianlBid2);
                        whereQuery.put("business_id", fianlBid2.toString());
                        DBCursor cursor = collBusiness.find(whereQuery);
                        while (cursor.hasNext()) {
                            //System.out.println(cursor.next());
                            outputMyList.add(cursor.next());
                        }
                    }
                    queryLabel.setText("<html><p>" + finalQuery + "</p></html>");
                    resultTable.setModel(dtm);
                    String header[] = new String[] { "B_ID", "Business", "City", "State", "Stars" };
                    // add header in table model     
                    dtm.setColumnIdentifiers(header);
                    for (DBObject temp : outputMyList) {
                        //System.out.println("Business Name : " + temp.get("name") + " Category :  " + temp.get("categories"));
                        Object[] row = new Object[5];
                        row[0] = temp.get("business_id");
                        row[1] = temp.get("name");
                        row[2] = temp.get("city");
                        row[3] = temp.get("state");
                        row[4] = temp.get("stars");

                        dtm.addRow(row);
                    }
                } catch (Exception e) {

                }
            } //review if
              ///////////////////////////////Category and Checkin///////////////////////////////
            else {//Check in with cat not review
                int j = 0;
                int l = 0;

                HashMap<String, Integer> tempCheckin = new HashMap<String, Integer>();
                ArrayList<String> finalCheckinBid = new ArrayList<String>();
                StringBuffer finalQueryCatCheck = new StringBuffer();
                ArrayList<CheckinDetail> checkinList = new ArrayList<CheckinDetail>();
                //System.out.println("I am in checkin box");
                String[] arrayDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
                        "Saturday" };
                for (int i = 0; i < arrayDays.length; i++) {
                    if (fromCheckin == arrayDays[i]) {
                        j = i;
                    } else if (toCheckin == arrayDays[i]) {
                        l = i;
                    }
                }
                ArrayList<Integer> days = new ArrayList<Integer>();
                days.add(j);
                int temfromday = j;
                days.add(l);

                //                         System.out.println("Input Data "+j+"  "+fromCheckinHour+"  "+toCheckin+"  "+toCheckinHour+" "+
                //                                        operationCheckin+"  "+valueCheckin);
                //               System.out.println(j);         
                int difference = CheckForDay(fromCheckin, toCheckin);
                if (difference > 0) {
                    for (int k = 0; k < difference; k++) {
                        j = j + 1;
                        if (j == 7) {
                            j = 0;
                        }
                        days.add(j);

                    }
                }
                //                        for(int q:days){
                //                        System.out.println(q);
                //                        }

                List<DBObject> categoryIdList = new ArrayList<DBObject>();
                for (String t : finalCat) {
                    BasicDBObject whereQueryBusiness = new BasicDBObject();
                    BasicDBObject fieldsBusiness = new BasicDBObject();
                    fieldsBusiness.put("business_id", 1);
                    whereQueryBusiness.put("categories", t);
                    DBCursor cursorForBusiness = collBusiness.find(whereQueryBusiness, fieldsBusiness);
                    finalQueryCatCheck.append(whereQueryBusiness);
                    while (cursorForBusiness.hasNext()) {
                        int i = 1;
                        categoryIdList.add(cursorForBusiness.next());
                        i++;
                    }
                } //for FINALCAT
                List<DBObject> checkinCategoryIdList = new ArrayList<DBObject>();
                for (DBObject s : categoryIdList) {
                    //System.out.println(s.get("business_id"));
                    BasicDBObject whereQueryCheckin = new BasicDBObject();
                    whereQueryCheckin.put("business_id", s.get("business_id"));
                    DBCursor cursorForCheckin = collCheckin.find(whereQueryCheckin);
                    while (cursorForCheckin.hasNext()) {
                        int i = 1;
                        checkinCategoryIdList.add(cursorForCheckin.next());
                        i++;
                    }
                } //for DBObject s:categoryIdList
                for (DBObject u : checkinCategoryIdList) {
                    //                                System.out.println(s.get("business_id"));    
                    //                                System.out.println(u.get("checkin_info").toString());

                    String full = u.get("checkin_info").toString();
                    String a = full.replaceAll("[{}]", "");
                    String[] b = a.split(",");
                    for (int x = 0; x < b.length; x++) {
                        CheckinDetail objCheckin = new CheckinDetail();
                        String[] c = b[x].split(":");

                        String d = c[0].replaceAll("[\"]", "");
                        String[] e = d.split("-");
                        objCheckin.b_Id = u.get("business_id").toString();
                        //                                        System.out.println(u.get("business_id").toString());
                        //                                        System.out.println(e[0]);//from time
                        objCheckin.fromTime = Integer.parseInt(e[0].replaceAll("\\s+", ""));
                        //                                        System.out.println(e[1]);//day
                        objCheckin.checkinDay = Integer.parseInt(e[1].replaceAll("\\s+", ""));
                        //                                        System.out.println(c[1]);//value
                        objCheckin.CountValue = Integer.parseInt(c[1].replaceAll("\\s+", ""));
                        ;
                        checkinList.add(objCheckin);
                        //System.out.println(checkinList.size());
                    }
                }

                for (CheckinDetail e : checkinList) {

                    for (int f : days) {

                        if ((f == temfromday && temfromday == e.checkinDay
                                && Integer.parseInt(fromCheckinHour) <= e.fromTime)
                                || (f == l && l == e.checkinDay
                                        && Integer.parseInt(toCheckinHour) >= e.fromTime)
                                || (f == e.checkinDay && f != temfromday && f != l)) {
                            //                                    System.out.println(e.b_Id);
                            //                                    System.out.println(e.CountValue);
                            if (tempCheckin.containsKey(e.b_Id)) {
                                tempCheckin.put(e.b_Id, tempCheckin.get(e.b_Id) + e.CountValue);
                            } else {
                                tempCheckin.put(e.b_Id, e.CountValue);
                            }

                        }
                    }
                }

                Iterator itr = tempCheckin.entrySet().iterator();
                while (itr.hasNext()) {
                    Map.Entry entry = (Map.Entry) itr.next();
                    if ((operationCheckin.contains("="))) {
                        if (entry.getValue() == valueCheckin) {
                            finalCheckinBid.add(entry.getKey().toString());
                        }
                    }
                    if ((operationCheckin.contains("<"))) {
                        if (Integer.parseInt(entry.getValue().toString()) < Integer.parseInt(valueCheckin)) {
                            finalCheckinBid.add(entry.getKey().toString());
                            //System.out.println("in <");
                        }
                    }
                    if ((operationCheckin.contains(">"))) {
                        if (Integer.parseInt(entry.getValue().toString()) > Integer.parseInt(valueCheckin)) {
                            finalCheckinBid.add(entry.getKey().toString());
                            //System.out.println("in >");
                        }
                    }

                    //                            
                }
                finalQueryCatCheck.append(
                        "Stage{name='$match', value=Or Filter{filters=[Operator Filter{fieldName='checkin_info.2-3', operator='$exists', value=BsonBoolean{value=true}}, Operator Filter{fieldName='checkin_info.2-4', operator='$exists', value=BsonBoolean{value=true}}]}}\n"
                                + "Document{{$group=Document{{_id=$business_id, total1=Document{{$sum=$checkin_info.2-4}}, total2=Document{{$sum=$checkin_info.2-3}}}}}}\n"
                                + "Stage{name='$match', value=Operator Filter{fieldName='totalCheckins', operator='$gt', value=4}}");
                if (!Address.isEmpty() && !proximity.isEmpty()) {

                    if (Address.contains("3799 S Las Vegas Blvd Eastside Las Vegas, NV 89119")) {
                        longitude = -115.16768879999999;
                        latitude = 36.103017899999998;
                    }

                    if (Address
                            .equalsIgnoreCase("6002 S Durango Dr Ste 100 Spring Valley Las Vegas, NV 89113")) {
                        longitude = -115.27906539999999;
                        latitude = 36.079256100000002;
                    }

                    if (Address.equalsIgnoreCase("1801 E Baseline Rd, #101 Ste 101 Tempe, AZ 85283")) {
                        longitude = -111.90860979259;
                        latitude = 33.377052104372098;
                    }

                    if (Address.equalsIgnoreCase("1033 S Park St Bay Creek Madison, WI 53715")) {
                        longitude = -89.397478300000003;
                        latitude = 43.055539400000001;
                    }

                    if (Address.equalsIgnoreCase("University Center II Lot Phoenix, AZ 85008")) {
                        longitude = -112.02540759999999;
                        latitude = 33.451857400000002;
                    }

                    List<String> pointInterest = new ArrayList<String>();
                    BasicDBList geoCoord = new BasicDBList();

                    geoCoord.add(longitude);
                    geoCoord.add(latitude);

                    BasicDBList geoParams = new BasicDBList();
                    geoParams.add(geoCoord);
                    geoParams.add(Integer.parseInt(proximity) / 1018.59);

                    BasicDBObject query = new BasicDBObject("loc",
                            new BasicDBObject("$geoWithin", new BasicDBObject("$center", geoParams)));

                    DBCursor cursorForBusiness = collBusiness.find(query);
                    finalQueryCatCheck.append(query);
                    while (cursorForBusiness.hasNext()) {
                        pointInterest.add(cursorForBusiness.next().get("business_id").toString());

                    }
                    //                System.out.println(pointInterest.size());
                    //                System.out.println(reviewCategoryIdList.size());
                    finalCheckinBid.retainAll(pointInterest);
                    //                System.out.println(reviewCategoryIdList.size());
                }

                resultTable.setModel(dtm);
                queryLabel.setText("<html><p>" + finalQueryCatCheck.toString() + "</p></html>");
                String header[] = new String[] { "B_ID", "Business", "City", "State", "Stars" };

                // add header in table model     
                dtm.setColumnIdentifiers(header);
                List<DBObject> outputMyList = new ArrayList<DBObject>();
                BasicDBObject whereQuery = new BasicDBObject();
                for (String fianlBid2 : finalCheckinBid) {
                    whereQuery.put("business_id", fianlBid2);
                    DBCursor cursor = collBusiness.find(whereQuery);
                    while (cursor.hasNext()) {
                        int i = 1;
                        //System.out.println(cursor.next());
                        outputMyList.add(cursor.next());
                        i++;
                    }
                }

                for (DBObject temp : outputMyList) {
                    //System.out.println("Business Name : " + temp.get("name") + " Category :  " + temp.get("categories"));
                    Object[] row = new Object[5];
                    row[0] = temp.get("business_id");
                    row[1] = temp.get("name");
                    row[2] = temp.get("city");
                    row[3] = temp.get("state");
                    row[4] = temp.get("stars");

                    dtm.addRow(row);
                }
                // }
            } //else with no review
        } //if for entire checkin check
        else {//only cat

            /////////////////////////////////////////Cat N Review/////////////////////////////////////////////////////////////////////
            if (!fromReview.isEmpty() && !toReview.isEmpty() && !operationStar.isEmpty() && !valueStar.isEmpty()
                    && !operationVote.isEmpty() && !valueVote.isEmpty()) {
                StringBuffer finalQueryCatReview = new StringBuffer();
                DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
                String fromDate1 = fromReview;
                String fromdate = fromDate1 + "T00:00:00Z";
                String toDate1 = toReview;
                String todate = toDate1 + "T00:00:00Z";
                int starValue = Integer.parseInt(valueStar);
                //int voteValue = 4;
                int voteValue = Integer.parseInt(valueVote);
                DB dbReview = mongoClient.getDB("review");
                DBCollection collReview = dbReview.getCollection("review");

                //abhi tak ki bid is in finalCheckinBid
                //                    for(String a :finalCheckinBid){
                //                    System.out.println(a);
                //                    }
                try {
                    List<Object> finalCatBid = new ArrayList<Object>();
                    List<Object> reviewCategoryIdList = new ArrayList<Object>();
                    for (String a : finalCat) {

                        BasicDBObject whereQueryBusinessReview = new BasicDBObject();
                        //System.out.println(a);
                        whereQueryBusinessReview.put("categories", a);
                        DBCursor cursor = collBusiness.find(whereQueryBusinessReview);
                        finalQueryCatReview.append(whereQueryBusinessReview);
                        while (cursor.hasNext()) {
                            int i = 1;
                            //System.out.println(cursor.next());
                            finalCatBid.add(cursor.next().get("business_id"));
                            i++;
                        }
                    }
                    DBObject match = new BasicDBObject("$match",
                            new BasicDBObject("date", new BasicDBObject("$gt", format.parse(fromdate))
                                    .append("$lt", format.parse(todate))));

                    DBObject groupFields = new BasicDBObject("_id", "$business_id");
                    groupFields.put("total1", new BasicDBObject("$sum", "$votes.funny"));
                    groupFields.put("total2", new BasicDBObject("$sum", "$votes.useful"));
                    groupFields.put("total3", new BasicDBObject("$sum", "$votes.cool"));
                    groupFields.put("totalStars", new BasicDBObject("$sum", "$stars"));
                    DBObject group = new BasicDBObject("$group", groupFields);

                    DBObject fields = new BasicDBObject("_id", 1);
                    BasicDBList addFields = new BasicDBList();
                    addFields.add("$total1");
                    addFields.add("$total2");
                    addFields.add("$total3");
                    fields.put("totalVotes", new BasicDBObject("$sum", addFields));
                    fields.put("totalStars", 1);
                    DBObject project = new BasicDBObject("$project", fields);
                    BasicDBObject votes = null;
                    BasicDBObject stars = null;
                    if (operationStar.equals(">")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$gt", starValue));
                    }
                    if (operationStar.equals("<")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$lt", starValue));
                    }
                    if (operationStar.equals("=")) {
                        stars = new BasicDBObject("totalStars", new BasicDBObject("$eq", starValue));
                    }
                    if (operationVote.equals(">")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$gt", voteValue));
                    }
                    if (operationVote.equals("<")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$lt", voteValue));
                    }
                    if (operationVote.equals("=")) {
                        votes = new BasicDBObject("totalVotes", new BasicDBObject("$eq", voteValue));
                    }
                    List<BasicDBObject> list1 = new ArrayList<BasicDBObject>();
                    list1.add(new BasicDBObject(votes));
                    list1.add(new BasicDBObject(stars));
                    DBObject votesnStars = new BasicDBObject("$and", list1);
                    DBObject match2 = new BasicDBObject("$match", votesnStars);

                    AggregationOutput cursorForReview = collReview.aggregate(match, group, project, match2);
                    String query33 = match + "\n" + group + "\n" + project + "\n" + match2;
                    finalQueryCatReview.append(query33);
                    Iterable<DBObject> list = cursorForReview.results();
                    Iterator<DBObject> resultSet1 = list.iterator();
                    while (resultSet1.hasNext()) {
                        //                            System.out.println(resultSet1.next().get("_id"));
                        reviewCategoryIdList.add(resultSet1.next().get("_id"));
                    }
                    //System.out.println(reviewCategoryIdList.size());
                    //System.out.println(finalCatBid.size());
                    reviewCategoryIdList.retainAll(finalCatBid);
                    //System.out.println(reviewCategoryIdList.size());
                    //                        for (Object s : reviewCategoryIdList) { 
                    //                        System.out.println(s.toString());
                    //                        }
                    if (!Address.isEmpty() && !proximity.isEmpty()) {

                        if (Address.contains("3799 S Las Vegas Blvd Eastside Las Vegas, NV 89119")) {
                            longitude = -115.16768879999999;
                            latitude = 36.103017899999998;
                        }

                        if (Address.equalsIgnoreCase(
                                "6002 S Durango Dr Ste 100 Spring Valley Las Vegas, NV 89113")) {
                            longitude = -115.27906539999999;
                            latitude = 36.079256100000002;
                        }

                        if (Address.equalsIgnoreCase("1801 E Baseline Rd, #101 Ste 101 Tempe, AZ 85283")) {
                            longitude = -111.90860979259;
                            latitude = 33.377052104372098;
                        }

                        if (Address.equalsIgnoreCase("1033 S Park St Bay Creek Madison, WI 53715")) {
                            longitude = -89.397478300000003;
                            latitude = 43.055539400000001;
                        }

                        if (Address.equalsIgnoreCase("University Center II Lot Phoenix, AZ 85008")) {
                            longitude = -112.02540759999999;
                            latitude = 33.451857400000002;
                        }

                        List<String> pointInterest = new ArrayList<String>();
                        BasicDBList geoCoord = new BasicDBList();

                        geoCoord.add(longitude);
                        geoCoord.add(latitude);

                        BasicDBList geoParams = new BasicDBList();
                        geoParams.add(geoCoord);
                        geoParams.add(Integer.parseInt(proximity) / 1018.59);

                        BasicDBObject query = new BasicDBObject("loc",
                                new BasicDBObject("$geoWithin", new BasicDBObject("$center", geoParams)));

                        DBCursor cursorForBusiness = collBusiness.find(query);
                        finalQueryCatReview.append(query);
                        while (cursorForBusiness.hasNext()) {
                            pointInterest.add(cursorForBusiness.next().get("business_id").toString());

                        }
                        //                System.out.println(pointInterest.size());
                        //                System.out.println(reviewCategoryIdList.size());
                        reviewCategoryIdList.retainAll(pointInterest);
                        //                System.out.println(reviewCategoryIdList.size());
                    }
                    queryLabel.setText("<html><p>" + finalQueryCatReview.toString() + "</p></html>");
                    resultTable.setModel(dtm);

                    String header[] = new String[] { "B_ID", "Business", "City", "State", "Stars" };

                    // add header in table model     
                    dtm.setColumnIdentifiers(header);
                    List<DBObject> outputMyList = new ArrayList<DBObject>();
                    for (Object fianlBid2 : reviewCategoryIdList) {
                        BasicDBObject whereQuery = new BasicDBObject();

                        //                        System.out.println(fianlBid2);
                        whereQuery.put("business_id", fianlBid2.toString());
                        DBCursor cursor = collBusiness.find(whereQuery);
                        while (cursor.hasNext()) {
                            //System.out.println(cursor.next());
                            outputMyList.add(cursor.next());
                        }
                    }

                    for (DBObject temp : outputMyList) {
                        //System.out.println("Business Name : " + temp.get("name") + " Category :  " + temp.get("categories"));
                        Object[] row = new Object[5];
                        row[0] = temp.get("business_id");
                        row[1] = temp.get("name");
                        row[2] = temp.get("city");
                        row[3] = temp.get("state");
                        row[4] = temp.get("stars");

                        dtm.addRow(row);
                    }
                } catch (Exception e) {

                }
            } //////////////////////////////////////Only Category ////////////////////////////////////////////
            else {
                resultTable.setModel(dtm);
                String header[] = new String[] { "B_ID", "Business", "City", "State", "Stars", "Category" };
                // add header in table model     
                dtm.setColumnIdentifiers(header);
                StringBuffer catOnly = new StringBuffer();
                if (!Address.isEmpty() && !proximity.isEmpty() && finalCat.size() > 0) {
                    if (Address.contains("3799 S Las Vegas Blvd Eastside Las Vegas, NV 89119")) {
                        longitude = -115.16768879999999;
                        latitude = 36.103017899999998;
                    }

                    if (Address
                            .equalsIgnoreCase("6002 S Durango Dr Ste 100 Spring Valley Las Vegas, NV 89113")) {
                        longitude = -115.27906539999999;
                        latitude = 36.079256100000002;
                    }

                    if (Address.equalsIgnoreCase("1801 E Baseline Rd, #101 Ste 101 Tempe, AZ 85283")) {
                        longitude = -111.90860979259;
                        latitude = 33.377052104372098;
                    }

                    if (Address.equalsIgnoreCase("1033 S Park St Bay Creek Madison, WI 53715")) {
                        longitude = -89.397478300000003;
                        latitude = 43.055539400000001;
                    }

                    if (Address.equalsIgnoreCase("University Center II Lot Phoenix, AZ 85008")) {
                        longitude = -112.02540759999999;
                        latitude = 33.451857400000002;
                    }
                    //BasicDBList category = new BasicDBList();
                    for (String a : finalCat) {

                        BasicDBObject andQuery = new BasicDBObject();
                        List<BasicDBObject> obj = new ArrayList<BasicDBObject>();

                        List<DBObject> pointInterest = new ArrayList<DBObject>();
                        BasicDBList geoCoord = new BasicDBList();

                        geoCoord.add(longitude);
                        geoCoord.add(latitude);

                        BasicDBList geoParams = new BasicDBList();
                        geoParams.add(geoCoord);
                        geoParams.add(Integer.parseInt(proximity) / 1018.59);

                        BasicDBObject query = new BasicDBObject("loc",
                                new BasicDBObject("$geoWithin", new BasicDBObject("$center", geoParams)));
                        obj.add(query);
                        obj.add(new BasicDBObject("categories", a));
                        andQuery.put("$and", obj);
                        System.out.println(andQuery);
                        DBCursor cursorForBusiness = collBusiness.find(andQuery);
                        catOnly.append(andQuery);
                        while (cursorForBusiness.hasNext()) {
                            pointInterest.add(cursorForBusiness.next());

                        }
                        for (DBObject temp : pointInterest) {

                            Object[] row = new Object[6];
                            row[0] = temp.get("business_id");
                            row[1] = temp.get("name");
                            row[2] = temp.get("city");
                            row[3] = temp.get("state");
                            row[4] = temp.get("stars");
                            row[5] = a;

                            dtm.addRow(row);
                        }
                    }
                } else {
                    List<DBObject> testMyList = new ArrayList<DBObject>();
                    for (String a : finalCat) {
                        BasicDBObject whereQuery = new BasicDBObject();
                        //System.out.println(a);
                        whereQuery.put("categories", a);
                        DBCursor cursor = collBusiness.find(whereQuery);
                        catOnly.append(whereQuery);
                        while (cursor.hasNext()) {
                            testMyList.add(cursor.next());

                        }

                        for (DBObject temp : testMyList) {
                            //System.out.println("Business Name : " + temp.get("name") + " Category :  " + temp.get("categories"));
                            Object[] row = new Object[6];
                            row[0] = temp.get("business_id");
                            row[1] = temp.get("name");
                            row[2] = temp.get("city");
                            row[3] = temp.get("state");
                            row[4] = temp.get("stars");
                            row[5] = a;

                            dtm.addRow(row);
                        }
                    }

                }
                queryLabel.setText("<html><p>" + catOnly.toString() + "</p></html>");
            }
        } //else
    } //cat and subCat is selected

}

From source file:act.server.MongoDB.java

License:Open Source License

/**
 * Setup the ability to use MongoDB's aggregation framework.
 * This greatly greatly simplifies pulling out highly nested and unstructured data from the db.
 *
 * This method performs the query over the sequence database.
 *
 * References: https://docs.mongodb.com/manual/aggregation/
 * @param pipeline A list of DBObjects that will be sequentially applied via aggregate.
 * @return An iterator over all the matching objects.
   *///from   w w  w  .ja  v a2s  . c  om
public Iterator<DBObject> applyPipelineOverSequences(List<DBObject> pipeline) {
    AggregationOutput cursor = this.dbSeq.aggregate(pipeline);
    return cursor.results().iterator();
}

From source file:act.server.MongoDB.java

License:Open Source License

/**
 * Setup the ability to use MongoDB's aggregation framework.
 * This greatly greatly simplifies pulling out highly nested and unstructured data from the db.
 *
 * This method performs the query over the sequence reaction.
 *
 * References: https://docs.mongodb.com/manual/aggregation/
 * @param pipeline A list of DBObjects that will be sequentially applied via aggregate.
 * @return An iterator over all the matching objects.
 *///  w  ww.  j  a  v  a2  s.c o  m
public Iterator<DBObject> applyPipelineOverReactions(List<DBObject> pipeline) {
    AggregationOutput cursor = this.dbReactions.aggregate(pipeline);
    return cursor.results().iterator();
}

From source file:com.azure.api.MongoDAO.java

public static LinkedList<Pojoo> MongoConnection() throws IOException {

    MongoClient mongo = new MongoClient("localhost", 27017);

    DB db = mongo.getDB("test");

    DBCollection table = db.getCollection("DataFinal");

    List<String> uniId = table.distinct("Asin");

    //BasicDBObject searchQuery = new BasicDBObject();
    //searchQuery.put("Asin", "000100039X");
    DBObject groupFields = new BasicDBObject("_id", "$Asin");

    groupFields.put("count", new BasicDBObject("$sum", 1));
    //DBObject group = new BasicDBObject("$group", groupFields );
    DBObject sortFields = new BasicDBObject("count", -1);
    //AggregationOutput output = table.aggregate(group, new BasicDBObject("$sort", sortFields ));
    //System.out.println(output.results());//Top reviews 

    groupFields.put("average", new BasicDBObject("$avg", "$Ratings"));
    DBObject group2 = new BasicDBObject("$group", groupFields);

    AggregationOutput output2 = table.aggregate(group2, new BasicDBObject("$sort", sortFields));

    Iterable<DBObject> iterable = output2.results();

    //LinkedList<String>stringResult = new LinkedList<String>();

    //LinkedList<String>stringrating = new LinkedList<String>();

    //if(awsResult.size()!=0){awsResult.remove();}
    //if(stringResult.size()!=0){stringResult.remove();}

    //System.out.println("fffffffffffffffff"+stringResult.size());

    int count = 0;

    LinkedList<Pojoo> uiList = new LinkedList<Pojoo>();
    for (DBObject res : output2.results()) {

        //System.out.println("TTTTTTTT "+res.get("_id").toString());
        //System.out.println("VVVVVVVV "+res.get("average").toString());
        String awsResult = awsApi.getDetails(res.get("_id").toString());
        //stringResult.add(res.get("_id").toString());
        //stringrating.add(res.get("average").toString());
        Pojoo polo = new Pojoo();
        polo.setStringResult(awsResult);
        polo.setStringrating(res.get("average").toString());
        uiList.add(polo);/*from   www  .  jav  a2 s .  co m*/

        count++;
        if (count == 8) {
            res = null;
            break;
        }
    }

    count = 0;

    //awsResult = awsApi.getDetails(stringResult);
    //for(String htp: awsResult){
    //Pojoo polo = new Pojoo();
    //polo.setStringResult(htp);
    //polo.setStringrating(res.get("average").toString());
    //uiList.add(polo);
    //}

    // System.out.println("WWWWWW"+awsResult);
    //Pojoo img = new Pojoo();
    //img.setStringrating(stringrating);
    //img.setStringResult(awsResult);
    //stringResult.remove();

    //System.out.println("eeeeeeeeeeeeeee"+awsResult.size());
    //for(String ret:awsResult)
    //{
    //   System.out.println(ret);
    //}

    return uiList;

}

From source file:com.azure.api.MongoDAO.java

public static LinkedList<String> MongoConnection2() throws IOException {

    MongoClient mongo = new MongoClient("localhost", 27017);

    DB db = mongo.getDB("test");

    DBCollection table = db.getCollection("DataFinal");
    DBObject sortFields = new BasicDBObject("count", -1);
    DBObject groupGenreFields = new BasicDBObject("_id", "$Genre1");
    groupGenreFields.put("count", new BasicDBObject("$sum", 1));
    DBObject genregroup = new BasicDBObject("$group", groupGenreFields);
    AggregationOutput Genreoutput = table.aggregate(genregroup, new BasicDBObject("$sort", sortFields));

    LinkedList<String> stringResult = new LinkedList<String>();

    int count = 0;
    for (DBObject res : Genreoutput.results()) {
        stringResult.add(res.get("_id").toString());
        System.out.println(res.get("_id").toString());
        count++;//from   w  w  w . j ava  2  s.  c  o m
        if (count == 8)
            break;

    }

    System.out.print("strinResult Size" + stringResult.size());

    return stringResult;

}

From source file:com.azure.api.MongoDAO.java

public static LinkedList<String> MongoConnection3() throws IOException {

    MongoClient mongo = new MongoClient("localhost", 27017);

    DB db = mongo.getDB("test");

    DBCollection table = db.getCollection("DataFinal");
    DBObject sortFields = new BasicDBObject("count", -1);
    DBObject groupGenreFields = new BasicDBObject("_id", "$Author");
    groupGenreFields.put("count", new BasicDBObject("$sum", 1));
    DBObject genregroup = new BasicDBObject("$group", groupGenreFields);
    AggregationOutput Genreoutput = table.aggregate(genregroup, new BasicDBObject("$sort", sortFields));

    LinkedList<String> stringResult = new LinkedList<String>();

    int count = 0;
    for (DBObject res : Genreoutput.results()) {
        stringResult.add(res.get("_id").toString());
        System.out.println(res.get("_id").toString());
        count++;/*w ww . j a  va 2s .  c  om*/
        if (count == 8)
            break;

    }

    System.out.print("strinResult Size" + stringResult.size());

    return stringResult;

}

From source file:com.bigdid.model.counters.java

public long getRevenueTotal() {

    List a = new ArrayList<String>();

    // Now the $group operation
    DBObject groupFields = new BasicDBObject("_id", null);
    groupFields.put("revenue", new BasicDBObject("$sum", "$Order_Value"));
    DBObject group = new BasicDBObject("$group", groupFields);

    coll = db.getCollection("item_revenue");

    // run aggregation
    List<DBObject> pipeline = Arrays.asList(group);
    long total = 0l;
    AggregationOutput output = coll.aggregate(pipeline);

    for (DBObject result : output.results()) {
        //System.out.println(result.get("_id"));
        total = Long.valueOf(result.get("revenue").toString());
    }/*from ww w.j  a  v a2 s.  c  o  m*/
    return total;
}

From source file:com.bigdid.model.Feedback_Location.java

public List getCity() throws SQLException, UnknownHostException {

    List a = new ArrayList<String>();

    // Now the $group operation
    DBObject groupFields = new BasicDBObject("_id", "$Location");
    groupFields.put("revenue", new BasicDBObject("$sum", "$Order_Value"));
    DBObject group = new BasicDBObject("$group", groupFields);

    // Finally the $sort operation
    DBObject sort = new BasicDBObject("$sort", new BasicDBObject("revenue", -1));

    DBObject limit = new BasicDBObject("$limit", 10);

    // run aggregation
    List<DBObject> pipeline = Arrays.asList(group, sort, limit);

    AggregationOutput output = coll.aggregate(pipeline);

    for (DBObject result : output.results()) {
        //System.out.println(result.get("_id"));
        a.add(result.get("_id"));
    }/*from w ww . j a  v  a2  s .c  o m*/

    //numCity= l.size();
    return a;

}

From source file:com.bugull.mongo.BuguAggregation.java

License:Apache License

public Iterable<DBObject> results() throws AggregationException {
    int size = stages.size();
    if (size <= 0) {
        throw new AggregationException("Empty stage in aggregation pipeline!");
    }// w  ww  .  j  a v a2 s.  co  m
    AggregationOutput output = coll.aggregate(stages);
    CommandResult cr = output.getCommandResult();
    if (!cr.ok()) {
        throw new AggregationException(cr.getErrorMessage());
    }
    return output.results();
}

From source file:com.ebay.cloud.cms.dal.search.impl.SearchServiceImpl.java

License:Apache License

/**
 * Execute mongodb query /*from   ww  w .  ja  v a 2 s.co m*/
 * 
 */
private SearchResult executeMongoQuery(MongoQuery mongoQuery, SearchOption option, PersistenceContext context,
        ISearchQuery query) {
    MetaClass metadata = query.getMetadata();
    SearchResult result = new SearchResult(metadata);

    if (option.isOnlyCount()) {
        long count = MongoExecutor.count(context, metadata, mongoQuery.match);
        result.setCount(count);
        result.setRawCount(count);
    } else if (mongoQuery.group == null) {
        List<DBObject> dbObjectList = null;
        dbObjectList = MongoExecutor.find(context, metadata, mongoQuery.match, mongoQuery.project, option);
        checkMemoryUsage(dbObjectList, context);
        buildResultObject(metadata, result, dbObjectList, context.getEntityFactory());
    } else {
        AggregationOutput output = null;
        DBObject firstAggr = null;
        List<DBObject> aggrObjects = new ArrayList<DBObject>();
        firstAggr = buildAggregationObjects(mongoQuery, option, aggrObjects);
        output = MongoExecutor.aggregate(context, metadata, firstAggr, aggrObjects.toArray(new DBObject[0]));
        List<DBObject> dbObjectList = new ArrayList<DBObject>();
        for (DBObject entity : output.results()) {
            dbObjectList.add(entity);
        }
        checkMemoryUsage(dbObjectList, context);
        buildResultObject(metadata, result, output.results(), context.getEntityFactory());
    }

    // count node should not have hasmore set
    if (option.isLookForward() && !option.isOnlyCount() && result.getRawCount() >= option.getLimit()) {
        result.setHasMore(true);
        List<IEntity> resultSet = result.getResultSet();
        resultSet.remove(resultSet.size() - SearchOption.LOOK_FORWARD);
    }

    // set cursor entity
    List<IEntity> results = result.getResultSet();
    if (!results.isEmpty()) {
        IEntity lastEntity = results.get(results.size() - 1);
        result.setCursorEntity(lastEntity);
    }

    return result;
}