MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Запитване за документ и всички негови поддокументи, които съответстват на условие в mongodb (с помощта на spring)

Ще трябва да използвате MongoTemplate, предоставен в зависимостта от пролетните mongo данни. Няма готова поддръжка за $filter в текущата версия на изданието. Използвайте AggressionExpression. Включете проекцията по-долу в проекта. Използвайте версия 1.8.5 spring mongo с данни.

Aggregation aggregation = newAggregation(
        match(Criteria.where("_id").is(1)),
        project( "_id", "sensorName", "samplePeriod").and(new AggregationExpression() {
            @Override
            public DBObject toDbObject(AggregationOperationContext aggregationOperationContext) {
                DBObject filter = new BasicDBObject("input", "$data").append("as", "result").append("cond",
                        new BasicDBObject("$and", Arrays.<Object> asList(new BasicDBObject("$gte", Arrays.<Object> asList("$$result.timestamp", 1483537204000L)),
                                new BasicDBObject("$lte", Arrays.<Object> asList("$$result.timestamp", 1483537214000L)))));
                return new BasicDBObject("$filter", filter);
            }
        }).as("data")
);

List<BasicDBObject> dbObjects = monoTemplate.aggregate(aggregation, "collectionname", BasicDBObject.class).getMappedResults();


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как най-добре да създадете RESTful API в Node.js

  2. MongoDB $pull масив 2 ниво

  3. Заобиколно решение на MongoDB за документ с размер над 16 MB?

  4. Mongo преобразува вградения документ в масив

  5. MongoDB $умножете