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

Hitung hasil dengan Driver Java MongoDB 3.0

Gunakan count() Mon MongoCollection metode, menerapkan filter kueri yang memanfaatkan objek Datetime dari Joda-Time library yang menyederhanakan manipulasi tanggal di java. Anda dapat memeriksanya di sini . Pada dasarnya buat objek datetime 15 menit dari waktu sekarang:

DateTime dt = new DateTime();
DateTime now = new DateTime();
DateTime subtracted = dt.minusMinutes(15);

Kemudian gunakan variabel untuk membuat kueri rentang tanggal untuk digunakan dalam metode count():

Document query = new Document("lastlogin", new Document("$gte", subtracted).append("$lte", now));
mongoClient = new MongoClient("localhost", 3001);
long count = mongoClient.getDatabase("database1")
                        .getCollection("users")
                        .count(query);

Pada sharded cluster, db.collection.count() underlying yang mendasarinya metode ini dapat menghasilkan penghitungan yang tidak akurat jika ada dokumen yatim piatu atau jika migrasi potongan sedang berlangsung. Jadi lebih aman menggunakan aggregate() sebagai gantinya:

Iterator<Document> it = mongoClient.getDatabase("database1")
                       .getCollection("users")
                       .aggregate(Arrays.asList(
                            new Document("$match", new Document("lastlogin", 
                                new Document("$gte", subtracted).append("$lte", now))
                            ),
                            new Document("$group", new Document("_id", null)
                                .append("count", 
                                    new Document("$sum", 1)
                                )
                            )
                        )
                    ).iterator();
int count = it.hasNext() ? (Integer)it.next().get("count") : 0;



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregat $lookup Ukuran total dokumen dalam saluran yang cocok melebihi ukuran dokumen maksimum

  2. Cara memperbarui nilai array di Mongoose

  3. Apa cara yang benar untuk memulai layanan mongod di linux / OS X?

  4. Bagaimana cara menghapus dokumen menggunakan Node.js Mongoose?

  5. Mengapa kita membutuhkan 'arbiter' dalam replikasi MongoDB?