sql >> Database >  >> NoSQL >> MongoDB

Tel resultaten met MongoDB 3.0 Java Driver

Gebruik MongoCollection's count() methode, een queryfilter toepassen dat gebruik maakt van het Datetime-object uit de Joda-Time bibliotheek die datummanipulatie in Java vereenvoudigt. Je kunt dat hier bekijken . Maak in principe een datetime-object 15 minuten vanaf de huidige tijd:

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

Gebruik vervolgens de variabelen om een ​​datumbereikquery te maken voor gebruik in de count()-methode:

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);

Op een shard-cluster, de onderliggende db.collection.count() methode kan resulteren in een onnauwkeurige telling als er zwevende documenten bestaan ​​of als een chunk-migratie aan de gang is. Het is dus veiliger om aggregate() . te gebruiken methode in plaats daarvan:

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. Eerste stappen met Redis

  2. mongod --bind_ip met behulp van docker-compose versie 2

  3. Django REST-framework reageert nog steeds met gegevens in de cache, zelfs na lege redis-sleutels

  4. MongoDb:verschil tussen $push/$addtoset