MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kueri dokumen dan semua subdokumennya yang cocok dengan kondisi di mongodb (menggunakan pegas)

Anda harus menggunakan MongoTemplate yang disediakan di dependensi data mongo musim semi. Tidak ada dukungan di luar kotak untuk $filter dalam versi rilis saat ini. Manfaatkan AgressionExpression. Sertakan proyeksi di bawah ini dalam proyek. Gunakan versi data mongo musim semi 1.8.5.

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. MongoDB $tambahkan

  2. MongoDB 2.1 Kerangka Agregat Jumlah Elemen Array yang cocok dengan nama

  3. Buat Koleksi di MongoDB

  4. Pertimbangan untuk Mengelola MongoDB

  5. Mongod mengeluh bahwa tidak ada folder /data/db