Skip to content

Commit 46f11e7

Browse files
committed
adds count implementation at mongodb
1 parent 6e13a23 commit 46f11e7

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

mongodb-driver/src/main/java/org/jnosql/diana/mongodb/document/MongoDBDocumentCollectionManager.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,13 @@ public List<DocumentEntity> select(DocumentQuery query) {
130130

131131
}
132132

133+
@Override
134+
public long count(String documentCollection) {
135+
Objects.requireNonNull(documentCollection, "documentCollection is required");
136+
MongoCollection<Document> collection = mongoDatabase.getCollection(documentCollection);
137+
return collection.count();
138+
}
139+
133140
private Bson getSort(Sort sort) {
134141
boolean isAscending = Sort.SortType.ASC.equals(sort.getType());
135142
return isAscending?Sorts.ascending(sort.getName()): Sorts.descending(sort.getName());

mongodb-driver/src/main/java/org/jnosql/diana/mongodb/document/MongoDBDocumentCollectionManagerAsync.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535

3636
import java.time.Duration;
3737
import java.util.List;
38-
import java.util.Objects;
3938
import java.util.concurrent.CopyOnWriteArrayList;
4039
import java.util.function.Consumer;
4140

41+
import static java.util.Objects.requireNonNull;
4242
import static org.jnosql.diana.mongodb.document.MongoDBUtils.ID_FIELD;
4343
import static org.jnosql.diana.mongodb.document.MongoDBUtils.getDocument;
4444

@@ -60,7 +60,7 @@ public class MongoDBDocumentCollectionManagerAsync implements DocumentCollection
6060

6161
@Override
6262
public void insert(DocumentEntity entity) throws ExecuteAsyncQueryException, UnsupportedOperationException {
63-
Objects.requireNonNull(entity, "entity is required");
63+
requireNonNull(entity, "entity is required");
6464
insert(entity, v -> {
6565
});
6666
}
@@ -74,8 +74,8 @@ public void insert(DocumentEntity entity, Duration ttl) {
7474
public void insert(DocumentEntity entity, Consumer<DocumentEntity> callBack)
7575
throws ExecuteAsyncQueryException, UnsupportedOperationException {
7676

77-
Objects.requireNonNull(entity, "entity is required");
78-
Objects.requireNonNull(callBack, "callBack is required");
77+
requireNonNull(entity, "entity is required");
78+
requireNonNull(callBack, "callBack is required");
7979
insert(entity, (aVoid, throwable) -> callBack.accept(entity));
8080
}
8181

@@ -87,7 +87,7 @@ public void insert(DocumentEntity entity, Duration ttl, Consumer<DocumentEntity>
8787
@Override
8888
public void update(DocumentEntity entity)
8989
throws ExecuteAsyncQueryException, UnsupportedOperationException {
90-
Objects.requireNonNull(entity, "entity is required");
90+
requireNonNull(entity, "entity is required");
9191
update(entity, (d, throwable) -> {
9292
});
9393
}
@@ -96,14 +96,14 @@ public void update(DocumentEntity entity)
9696
public void update(DocumentEntity entity, Consumer<DocumentEntity> callBack)
9797
throws ExecuteAsyncQueryException, UnsupportedOperationException {
9898

99-
Objects.requireNonNull(entity, "entity is required");
100-
Objects.requireNonNull(callBack, "callBack is required");
99+
requireNonNull(entity, "entity is required");
100+
requireNonNull(callBack, "callBack is required");
101101
update(entity, (d, throwable) -> callBack.accept(DocumentEntity.of(entity.getName(), Documents.of(d))));
102102
}
103103

104104
@Override
105105
public void delete(DocumentDeleteQuery query) {
106-
Objects.requireNonNull(query, "query is required");
106+
requireNonNull(query, "query is required");
107107
delete(query, (deleteResult, throwable) -> {
108108
});
109109
}
@@ -112,8 +112,8 @@ public void delete(DocumentDeleteQuery query) {
112112
public void delete(DocumentDeleteQuery query, Consumer<Void> callBack)
113113
throws ExecuteAsyncQueryException, UnsupportedOperationException {
114114

115-
Objects.requireNonNull(query, "query is required");
116-
Objects.requireNonNull(callBack, "callBack is required");
115+
requireNonNull(query, "query is required");
116+
requireNonNull(callBack, "callBack is required");
117117
delete(query, (deleteResult, throwable) -> callBack.accept(null));
118118

119119
}
@@ -122,8 +122,8 @@ public void delete(DocumentDeleteQuery query, Consumer<Void> callBack)
122122
public void select(DocumentQuery query, Consumer<List<DocumentEntity>> callBack)
123123
throws ExecuteAsyncQueryException, UnsupportedOperationException {
124124

125-
Objects.requireNonNull(query, "query is required");
126-
Objects.requireNonNull(callBack, "callBack is required");
125+
requireNonNull(query, "query is required");
126+
requireNonNull(callBack, "callBack is required");
127127

128128
String collectionName = query.getDocumentCollection();
129129
MongoCollection<Document> collection = asyncMongoDatabase.getCollection(collectionName);
@@ -145,6 +145,14 @@ public void select(DocumentQuery query, Consumer<List<DocumentEntity>> callBack)
145145
result.forEach(documentBlock, voidSingleResultCallback);
146146
}
147147

148+
@Override
149+
public void count(String documentCollection, Consumer<Long> callback) {
150+
requireNonNull(documentCollection, "documentCollection is required");
151+
requireNonNull(callback, "callback is required");
152+
MongoCollection<Document> collection = asyncMongoDatabase.getCollection(documentCollection);
153+
collection.count((l, e) -> callback.accept(l));
154+
}
155+
148156
private DocumentEntity createEntity(String collectionName, Document document) {
149157
return DocumentEntity.of(collectionName, MongoDBUtils.of(document));
150158
}

0 commit comments

Comments
 (0)