java类com.mongodb.client.model.Sorts的实例源码

PlantController.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 27 收藏 0 点赞 0 评论 0
/**
 * Takes `uploadID` and returns all bed names as a json format string
 * @param uploadID - the year that the data was uploaded
 * @return String representation of json with all bed names
 */
public String getGardenLocationsAsJson(String uploadID){
    AggregateIterable<Document> documents
            = plantCollection.aggregate(
            Arrays.asList(
                    Aggregates.match(eq("uploadID", uploadID)), //!! Order is important here
                    Aggregates.group("$gardenLocation"),
                    Aggregates.sort(Sorts.ascending("_id"))
            ));

    List<Document> listDoc = new ArrayList<>();
    for (Document doc : documents) {
        listDoc.add(doc);
    }
    listDoc.sort(new BedComparator());

    return JSON.serialize(listDoc);
}
PlantController.java 文件源码 项目:digital-display-garden-iteration-4-revolverenguardia-1 阅读 33 收藏 0 点赞 0 评论 0
/**
 * List all plants within the database, filtered by uploadId, gardenLocation and commonName
 * @param queryParams
 * @param uploadId
 * @return
 */
public String listPlants(Map<String, String[]> queryParams, String uploadId) {

    if (!ExcelParser.isValidUploadId(db, uploadId))
        return "null";

    //Create a filter based on query params
    Document filterDoc = new Document();
    filterDoc.append("uploadId", uploadId);

    if (queryParams.containsKey("gardenLocation")) {
        String location =(queryParams.get("gardenLocation")[0]);
        filterDoc = filterDoc.append("gardenLocation", location);
    }


    if (queryParams.containsKey("commonName")) {
        String commonName =(queryParams.get("commonName")[0]);
        filterDoc = filterDoc.append("commonName", commonName);
    }

    FindIterable<Document> matchingPlants = plantCollection.find(filterDoc);
    matchingPlants.sort(Sorts.ascending("commonName", "cultivar"));

    return JSON.serialize(matchingPlants);
}
ExcelParser.java 文件源码 项目:digital-display-garden-iteration-4-revolverenguardia-1 阅读 31 收藏 0 点赞 0 评论 0
/**
 *
 * @return a date-sorted List of all the distinct uploadIds in the DB
 */
public static List<String> listUploadIds(MongoDatabase database) {
    MongoCollection<Document> plantCollection = database.getCollection("plants");

    AggregateIterable<Document> documents
            = plantCollection.aggregate(
            Arrays.asList(
                    Aggregates.group("$uploadId"),
                    Aggregates.sort(Sorts.ascending("_id"))
            ));
    List<String> lst = new LinkedList<>();
    for(Document d: documents) {
        lst.add(d.getString("_id"));
    }
    return lst;
}
ResourceStatusDetailDAO.java 文件源码 项目:environment.monitor 阅读 31 收藏 0 点赞 0 评论 0
@Deprecated
public List<ResourceStatus> getStatuses(String environmentName, String resourceId, Date from, Date to) {
  // consider month switch during data extraction if will be used
  switchCollection(from);

  return thisCollection.find(and(
      eq("environmentName", environmentName),
      gte("updated", from),
      lte("updated", to),
      eq("resource.resourceId", resourceId))
  )
      .sort(Sorts.ascending("updated"))
      .map(DocumentMapper::resourceStatusFromDocument)
      .into(new ArrayList<>());

}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 63 收藏 0 点赞 0 评论 0
@Test
public void ageCounts() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
            Arrays.asList(
                    /*
                     * Groups data by the "age" field, and then counts
                     * the number of documents with each given age.
                     * This creates a new "constructed document" that
                     * has "age" as it's "_id", and the count as the
                     * "ageCount" field.
                     */
                    Aggregates.group("$age",
                            Accumulators.sum("ageCount", 1)),
                    Aggregates.sort(Sorts.ascending("_id"))
            )
    );
    List<Document> docs = intoList(documents);
    assertEquals("Should be two distinct ages", 2, docs.size());
    assertEquals(docs.get(0).get("_id"), 25);
    assertEquals(docs.get(0).get("ageCount"), 1);
    assertEquals(docs.get(1).get("_id"), 37);
    assertEquals(docs.get(1).get("ageCount"), 2);
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 43 收藏 0 点赞 0 评论 0
@Test
public void averageAge() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
                    Arrays.asList(
                            Aggregates.group("$company",
                                    Accumulators.avg("averageAge", "$age")),
                            Aggregates.sort(Sorts.ascending("_id"))
                    ));
    List<Document> docs = intoList(documents);
    assertEquals("Should be three companies", 3, docs.size());

    assertEquals("Frogs, Inc.", docs.get(0).get("_id"));
    assertEquals(37.0, docs.get(0).get("averageAge"));
    assertEquals("IBM", docs.get(1).get("_id"));
    assertEquals(37.0, docs.get(1).get("averageAge"));
    assertEquals("UMM", docs.get(2).get("_id"));
    assertEquals(25.0, docs.get(2).get("averageAge"));
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 35 收藏 0 点赞 0 评论 0
@Test
public void ageCounts() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
            Arrays.asList(
                    /*
                     * Groups data by the "age" field, and then counts
                     * the number of documents with each given age.
                     * This creates a new "constructed document" that
                     * has "age" as it's "_id", and the count as the
                     * "ageCount" field.
                     */
                    Aggregates.group("$age",
                            Accumulators.sum("ageCount", 1)),
                    Aggregates.sort(Sorts.ascending("_id"))
            )
    );
    List<Document> docs = intoList(documents);
    assertEquals("Should be two distinct ages", 2, docs.size());
    assertEquals(docs.get(0).get("_id"), 25);
    assertEquals(docs.get(0).get("ageCount"), 1);
    assertEquals(docs.get(1).get("_id"), 37);
    assertEquals(docs.get(1).get("ageCount"), 2);
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 35 收藏 0 点赞 0 评论 0
@Test
public void averageAge() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
                    Arrays.asList(
                            Aggregates.group("$company",
                                    Accumulators.avg("averageAge", "$age")),
                            Aggregates.sort(Sorts.ascending("_id"))
                    ));
    List<Document> docs = intoList(documents);
    assertEquals("Should be three companies", 3, docs.size());

    assertEquals("Frogs, Inc.", docs.get(0).get("_id"));
    assertEquals(37.0, docs.get(0).get("averageAge"));
    assertEquals("IBM", docs.get(1).get("_id"));
    assertEquals(37.0, docs.get(1).get("averageAge"));
    assertEquals("UMM", docs.get(2).get("_id"));
    assertEquals(25.0, docs.get(2).get("averageAge"));
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-2-spraguesanborn 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void ageCounts() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
            Arrays.asList(
                    /*
                     * Groups data by the "age" field, and then counts
                     * the number of documents with each given age.
                     * This creates a new "constructed document" that
                     * has "age" as it's "_id", and the count as the
                     * "ageCount" field.
                     */
                    Aggregates.group("$age",
                            Accumulators.sum("ageCount", 1)),
                    Aggregates.sort(Sorts.ascending("_id"))
            )
    );
    List<Document> docs = intoList(documents);
    assertEquals("Should be two distinct ages", 2, docs.size());
    assertEquals(docs.get(0).get("_id"), 25);
    assertEquals(docs.get(0).get("ageCount"), 1);
    assertEquals(docs.get(1).get("_id"), 37);
    assertEquals(docs.get(1).get("ageCount"), 2);
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-2-spraguesanborn 阅读 36 收藏 0 点赞 0 评论 0
@Test
public void averageAge() {
    AggregateIterable<Document> documents
            = userDocuments.aggregate(
                    Arrays.asList(
                            Aggregates.group("$company",
                                    Accumulators.avg("averageAge", "$age")),
                            Aggregates.sort(Sorts.ascending("_id"))
                    ));
    List<Document> docs = intoList(documents);
    assertEquals("Should be three companies", 3, docs.size());

    assertEquals("Frogs, Inc.", docs.get(0).get("_id"));
    assertEquals(37.0, docs.get(0).get("averageAge"));
    assertEquals("IBM", docs.get(1).get("_id"));
    assertEquals(37.0, docs.get(1).get("averageAge"));
    assertEquals("UMM", docs.get(2).get("_id"));
    assertEquals(25.0, docs.get(2).get("averageAge"));
}
ServerResource.java 文件源码 项目:sam 阅读 28 收藏 0 点赞 0 评论 0
private static List<Bson> getServerQuery(Bson filter) {

    final List<Bson> pipeline = new ArrayList<>(6);
    if (filter != ALL) {
      pipeline.add(Aggregates.match(filter));
    }
    pipeline.add(Aggregates.unwind("$deployments", new UnwindOptions().preserveNullAndEmptyArrays(true)));
    pipeline.add(Aggregates.lookup(Collections.APPLICATIONS, "deployments.applicationId", "id", "applications"));
    pipeline.add(Aggregates.unwind("$applications", new UnwindOptions().preserveNullAndEmptyArrays(true)));
    pipeline.add(Aggregates.group(
      new Document().append("hostname", "$hostname").append("environment", "$environment"),
      new BsonField("fqdn", new Document("$first", "$fqdn")),
      new BsonField("description", new Document("$first", "$description")),
      new BsonField("os", new Document("$first", "$os")),
      new BsonField("network", new Document("$first", "$network")),
      new BsonField("meta", new Document("$first", "$meta")),
      new BsonField("attributes", new Document("$first", "$attributes")),
      new BsonField("applications", new Document("$push", "$applications")),
      new BsonField("deployments", new Document("$push", "$deployments"))));
    pipeline.add(Aggregates.sort(Sorts.ascending("_id")));
    return pipeline;
  }
MetadataDAOMongoDBImpl.java 文件源码 项目:aet 阅读 37 收藏 0 点赞 0 评论 0
@Override
public List<Suite> listSuites(DBKey dbKey) throws StorageException {
  MongoCollection<Document> metadata = getMetadataCollection(dbKey);
  LOGGER.debug("Fetching all suites for company: `{}`, project: `{}`.", dbKey.getCompany(),
      dbKey.getProject());

  final FindIterable<Document> found = metadata
      .find()
      .sort(Sorts.descending(SUITE_VERSION_PARAM_NAME));

  return FluentIterable.from(found).transform(new Function<Document, Suite>() {
    @Override
    public Suite apply(Document result) {
      return new DocumentConverter(result).toSuite();
    }
  }).toList();
}
MongoMetricsRepository.java 文件源码 项目:mandrel 阅读 26 收藏 0 点赞 0 评论 0
@Override
public Timeserie serie(String name) {
    Set<Data> results = StreamSupport
            .stream(timeseries
                    .find(Filters.eq("type", name))
                    .sort(Sorts.ascending("timestamp_hour"))
                    .limit(3)
                    .map(doc -> {
                        LocalDateTime hour = LocalDateTime.ofEpochSecond(((Date) doc.get("timestamp_hour")).getTime() / 1000, 0, ZoneOffset.UTC);
                        Map<String, Long> values = (Map<String, Long>) doc.get("values");

                        List<Data> mapped = values.entrySet().stream().map(elt -> Data.of(hour.plusMinutes(Long.valueOf(elt.getKey())), elt.getValue()))
                                .collect(Collectors.toList());
                        return mapped;
                    }).spliterator(), true).flatMap(elts -> elts.stream()).collect(TreeSet::new, Set::add, (left, right) -> {
                left.addAll(right);
            });

    Timeserie timeserie = new Timeserie();
    timeserie.addAll(results);
    return timeserie;
}
PlantController.java 文件源码 项目:digital-display-garden-iteration-4-revolverenguardia-1 阅读 37 收藏 0 点赞 0 评论 0
/**
 * Get a json containing a list of commonNames sorted by common name
 * @param uploadID
 * @return
 */
public String getCommonNamesJSON(String uploadID){
    if (!ExcelParser.isValidUploadId(db, uploadID))
        return "null";

    AggregateIterable<Document> documents
            = plantCollection.aggregate(
            Arrays.asList(
                    Aggregates.match(eq("uploadId", uploadID)), //!! Order is important here
                    Aggregates.group("$commonName"),
                    Aggregates.sort(Sorts.ascending("commonName"))
            ));
    return JSON.serialize(documents);
}
SipSearchQuery.java 文件源码 项目:tapir 阅读 44 收藏 0 点赞 0 评论 0
@Override
public Bson sort() {
    if ((isBlank(caller) || isRegex(caller)) && (isBlank(callee) || isRegex(callee))) {
        return null;
    }
    return Sorts.ascending("millis");
}
Messages.java 文件源码 项目:london 阅读 31 收藏 0 点赞 0 评论 0
public List<Message> get(OfflineMessagesMeta meta) {
    Document query = new Document("topic", meta.topic).append("msgid", new Document().append("$gt", meta.start).append("$lte", meta.end));
    FindIterable<Document> list = this.mongo.find(query).sort(Sorts.ascending("msgid"));
    List<Message> messages = new ArrayList<>();
    for (Document doc : list) {
        messages.add(new Message(doc.getString("topic"), doc.getLong("msgid"), ((Binary) doc.get("msg")).getData()));
    }
    return messages;
}
PlantController.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 32 收藏 0 点赞 0 评论 0
public String getGardenLocationsAsJson(String uploadID) {
    AggregateIterable<Document> documents
            = plantCollection.aggregate(
            Arrays.asList(
                    Aggregates.match(eq("uploadId", uploadID)), //!! Order is important here
                    Aggregates.group("$gardenLocation"),
                    Aggregates.sort(Sorts.ascending("_id"))
            ));
    return JSON.serialize(documents);
}
PlantController.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 33 收藏 0 点赞 0 评论 0
/**
     *
     * @return a sorted JSON array of all the distinct uploadIds in the DB
     */
    public String listUploadIds() {
        AggregateIterable<Document> documents
                = plantCollection.aggregate(
                Arrays.asList(
                        Aggregates.group("$uploadId"),
                        Aggregates.sort(Sorts.ascending("_id"))
                ));
        List<String> lst = new LinkedList<>();
        for(Document d: documents) {
            lst.add(d.getString("_id"));
        }
        return JSON.serialize(lst);
//        return JSON.serialize(plantCollection.distinct("uploadId","".getClass()));
    }
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 37 收藏 0 点赞 0 评论 0
@Test
public void over25SortedByName() {
    FindIterable<Document> documents
            = userDocuments.find(gt("age", 25))
                .sort(Sorts.ascending("name"));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 2", 2, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertEquals("Second should be Pat", "Pat", docs.get(1).get("name"));
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-3-sixguysburgers-fries 阅读 42 收藏 0 点赞 0 评论 0
@Test
public void justNameAndEmailNoIdSortedByCompany() {
    FindIterable<Document> documents
            = userDocuments.find()
            .sort(Sorts.ascending("company"))
            .projection(fields(include("name", "email"), excludeId()));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 3", 3, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertNotNull("First should have email", docs.get(0).get("email"));
    assertNull("First shouldn't have 'company'", docs.get(0).get("company"));
    assertNull("First should not have '_id'", docs.get(0).get("_id"));
}
PlantController.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 28 收藏 0 点赞 0 评论 0
/**
     *
     * @return a sorted JSON array of all the distinct uploadIDs in plant collection of the DB
     */
    public List<String> listUploadIDs() {
        AggregateIterable<Document> documents
                = plantCollection.aggregate(
                Arrays.asList(
                        Aggregates.group("$uploadID"),
                        Aggregates.sort(Sorts.ascending("_id"))
                ));
        List<String> lst = new LinkedList<>();
        for(Document d: documents) {
            lst.add(d.getString("_id"));
        }
        return lst;
//        return JSON.serialize(plantCollection.distinct("uploadID","".getClass()));
    }
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void over25SortedByName() {
    FindIterable<Document> documents
            = userDocuments.find(gt("age", 25))
                .sort(Sorts.ascending("name"));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 2", 2, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertEquals("Second should be Pat", "Pat", docs.get(1).get("name"));
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-4-dorfner-v2 阅读 42 收藏 0 点赞 0 评论 0
@Test
public void justNameAndEmailNoIdSortedByCompany() {
    FindIterable<Document> documents
            = userDocuments.find()
            .sort(Sorts.ascending("company"))
            .projection(fields(include("name", "email"), excludeId()));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 3", 3, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertNotNull("First should have email", docs.get(0).get("email"));
    assertNull("First shouldn't have 'company'", docs.get(0).get("company"));
    assertNull("First should not have '_id'", docs.get(0).get("_id"));
}
Database.java 文件源码 项目:Mp3Bib 阅读 74 收藏 0 点赞 0 评论 0
private int getLargestID() throws NotConnectedException {
    try {
        MongoCollection<Document> collection = getCollection();
        if (collection.count() <= 0) {
            return 0;
        }
        int largestID = (int) collection.find().sort(Sorts.descending("internalDbID")).limit(1).first().get("internalDbID");
        return largestID;
    } catch (Exception e) {
        BackendprocessService.getInstance().logger.error("couldnt find largest id " + e.toString());
    }
    return 1;
}
UserController.java 文件源码 项目:digital-display-garden-iteration-2-spraguesanborn 阅读 40 收藏 0 点赞 0 评论 0
public String getAverageAgeByCompany() {
    AggregateIterable<Document> documents
            = userCollection.aggregate(
            Arrays.asList(
                    Aggregates.group("$company",
                            Accumulators.avg("averageAge", "$age")),
                    Aggregates.sort(Sorts.ascending("_id"))
            ));
    System.err.println(JSON.serialize(documents));
    return JSON.serialize(documents);
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-2-spraguesanborn 阅读 33 收藏 0 点赞 0 评论 0
@Test
public void over25SortedByName() {
    FindIterable<Document> documents
            = userDocuments.find(gt("age", 25))
                .sort(Sorts.ascending("name"));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 2", 2, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertEquals("Second should be Pat", "Pat", docs.get(1).get("name"));
}
MongoSpec.java 文件源码 项目:digital-display-garden-iteration-2-spraguesanborn 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void justNameAndEmailNoIdSortedByCompany() {
    FindIterable<Document> documents
            = userDocuments.find()
            .sort(Sorts.ascending("company"))
            .projection(fields(include("name", "email"), excludeId()));
    List<Document> docs = intoList(documents);
    assertEquals("Should be 3", 3, docs.size());
    assertEquals("First should be Jamie", "Jamie", docs.get(0).get("name"));
    assertNotNull("First should have email", docs.get(0).get("email"));
    assertNull("First shouldn't have 'company'", docs.get(0).get("company"));
    assertNull("First should not have '_id'", docs.get(0).get("_id"));
}
MongoDataProvider.java 文件源码 项目:awplab-core 阅读 29 收藏 0 点赞 0 评论 0
private Bson getSorts(List<QuerySortOrder> list) {
    if (list == null || list.size() == 0) return defaultSort;

    List<Bson> newSorts = new ArrayList<>();
    for (QuerySortOrder querySortOrder : list) {
        if (querySortOrder.getDirection() == null || querySortOrder.getDirection().equals(SortDirection.ASCENDING)) newSorts.add(Sorts.ascending(querySortOrder.getSorted()));
        else newSorts.add(Sorts.descending(querySortOrder.getSorted()));
    }
    return Sorts.orderBy(newSorts);

}
ProfiledMongoClientTest.java 文件源码 项目:ibm-performance-monitor 阅读 47 收藏 0 点赞 0 评论 0
@Test
public void testFind()
{
    FindIterable<Document> find = coll.find(Filters.eq("name", "Alto"), Document.class)
        .sort(Sorts.ascending("color"));
    List<Document> docList = toDocumentList(find);
    assertEquals(4, docList.size());

    find = coll.find(Filters.eq("name", "Alto")).sort(Sorts.ascending("color"));
    docList = toDocumentList(find);
    assertEquals(4, docList.size());

    find = coll.find(Document.class).filter(Filters.eq("name", "Alto")).sort(Sorts.ascending("color"));
    docList = toDocumentList(find);
    assertEquals(4, docList.size());

    find = coll.find().filter(Filters.eq("name", "Alto")).sort(Sorts.ascending("color"));
    docList = toDocumentList(find);
    assertEquals(4, docList.size());

    find = coll.find().filter(Filters.eq("name", "Alto")).sort(Sorts.ascending("color")).batchSize(123)
        .collation(Collation.builder().build()).cursorType(CursorType.NonTailable).limit(2)
        .maxAwaitTime(12, TimeUnit.DAYS).maxTime(12, TimeUnit.DAYS).noCursorTimeout(true).oplogReplay(false)
        .partial(false).skip(1);
    docList = toDocumentList(find);
    assertEquals(2, docList.size());

    Document firstFind = coll.find().filter(Filters.eq("name", "Alto")).sort(Sorts.ascending("color")).first();
    Assert.assertNotNull(firstFind);

    coll.find().filter(Filters.eq("name", "Alto")).forEach(new Block<Document>()
    {
        @Override
        public void apply(Document t)
        {
            System.out.println(t.get("name"));
        }
    });

}
SearchResource.java 文件源码 项目:sam 阅读 34 收藏 0 点赞 0 评论 0
private <T> PaginatedCollection<T> textSearch(String query, String collection, Function<Document,T> mapper) {
  return RestHelper.paginatedList(
    database.getCollection(collection)
      .find(Filters.text(query))
      .projection(Projections.metaTextScore("score"))
      .sort(Sorts.metaTextScore("score"))
      .map(mapper)
  );
}


问题


面经


文章

微信
公众号

扫码关注公众号