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

Dokumen acak dari MongoDB menggunakan spring-data

Pembaruan:

Dimulai dengan Spring Data v2.0, Anda dapat melakukan ini:

SampleOperation matchStage = Aggregation.sample(5);
Aggregation aggregation = Aggregation.newAggregation(sampleStage);
AggregationResults<OutType> output = mongoTemplate.aggregate(aggregation, "collectionName", OutType.class);

Jawaban asli:

Lapisan abstraksi seperti spring-mongo selalu tertinggal jauh di belakang fitur yang dirilis server. Jadi, sebaiknya Anda membuat sendiri struktur dokumen BSON untuk tahap pipeline.

Terapkan di kelas khusus:

public class CustomAggregationOperation implements AggregationOperation {
    private DBObject operation;

    public CustomAggregationOperation (DBObject operation) {
        this.operation = operation;
    }

    @Override
    public DBObject toDBObject(AggregationOperationContext context) {
        return context.getMappedObject(operation);
    }
}

Dan kemudian gunakan dalam kode Anda:

Aggregation aggregation = newAggregation(
    new CutomAggregationOperation(
        new BasicDBObject(
            "$sample",
            new BasicDBObject( "size", 15 )
        )
    )
);

Karena ini mengimplementasikan AggregationOperation ini bekerja dengan baik dengan metode pembantu operasi pipa yang ada. yaitu:

Aggregation aggregation = newAggregation(
    // custom pipeline stage
    new CutomAggregationOperation(
        new BasicDBObject(
            "$sample",
            new BasicDBObject( "size", 15 )
        )
    ),
    // Standard match pipeline stage
    match(
        Criteria.where("myDate")
            .gte(new Date(new Long("949384052490")))
            .lte(new Date(new Long("1448257684431")))
    )
);

Jadi sekali lagi, semuanya hanyalah Objek BSON pada akhirnya. Ini hanya masalah memiliki pembungkus antarmuka sehingga metode kelas di spring-mongo menafsirkan hasilnya dan mendapatkan Objek BSON yang Anda tetapkan dengan benar.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mencatat Kueri MongoDB dengan Spring Boot

  2. Cara menjalankan banyak aplikasi dengan mongodb tunggal menggunakan buruh pelabuhan

  3. Mengapa saya tidak dapat menemukan catatan dengan _id di mongodb

  4. Populasi luwak vs objek bersarang

  5. Gambaran Umum Manajemen Pengguna MongoDB