@Test
public void testCount() throws Exception {
DynamicSqlParameter dsp = new DynamicSqlParameter();
long sT = System.currentTimeMillis();
MongoDatasource mongoDatasource = MongoDatasource.getInstance(mongoService.getDatasource());
DBCollection dbCollection = mongoDatasource.getDB().getCollection("dayFlow");
List arrayList = new ArrayList<>();
DBObject dbObject1 = new BasicDBObject();
dbObject1.put("usedDayFlow", 2);
DBObject dbObject2 = new BasicDBObject();
dbObject2.put("_id", null);
dbObject2.put("count", new BasicDBObject("$sum", 1));
arrayList.add(new BasicDBObject("$match", dbObject1));
arrayList.add(new BasicDBObject("$group", dbObject2));
System.out.println(JSON.serialize(arrayList));
AggregationOutput size = dbCollection.aggregate(arrayList);
System.out.println(size.results());
System.out.println("运行时间:" + ((System.currentTimeMillis() - sT) /1000) + "s");
}
[ { "$match" : { "usedDayFlow" : 2}} , { "$group" : { "_id" : null , "count" : { "$sum" : 1}}}]
[{ "_id" : null , "count" : 1002223}]
Masalah ini telah diselesaikan Pemacu mongo-java-driver-3.4.0 terbaharu digunakan Kaedah berikut boleh digunakan untuk mengira bilangan rekod dalam mod kluster berpecah Terima kasih atas bantuan anda.
cangkang mongo >> db.collection.aggregate([{$match:{categories:"Bakery"},{$group:{"_id":null,"count":{$sum:1}} }}])
Bolehkah anda menambah beberapa maklumat dalam ulasan? terima kasih!
Majukan kandungan ulasan di sini untuk tontonan mudah:
1. Perbezaan antara kiraan dan agregat: Dalam mongoDB, kiraan dan agregat dilaksanakan dalam dua program berbeza Pelaksanaan agregat mengambil kira persekitaran serpihan, jadi dokumen rasmi mengesyorkan menggunakan agregat untuk pengiraan dalam persekitaran .
2. Menggunakan agregat di bawah cangkerang MongoDB dan menggunakan pemacu Java MongoDB untuk menggunakan agregat untuk mengira, hasilnya harus sama, kerana kedua-duanya menggunakan agregat.
Anda menyebut bahawa masalahnya mungkin hasil kiraan antara cangkerang MongoDB dan pemacu Java MongoDB adalah tidak konsisten.
Saya rasa ketidakkonsistenan ini mungkin:
Untuk rujukan.
Sayangi MongoDB! Selamat Berseronok!
Malam ini pada pukul 8, akan ada kuliah dalam talian oleh tuan komuniti Cina MongoDB Sila ambil bahagian secara aktif;
Sila klik pautan ini.