MongoDB Java Driver 3.0 - 用于聚合的静态函数
MongoDB Java Driver 3.0 - Static functions for aggregation
我使用 MongoDB 3.0 和 Java 有一段时间了,直到现在我才不得不使用聚合。
我现在需要这样的功能,我想知道为什么 MongoDB 开发人员没有为聚合添加任何静态函数,就像他们为投影、过滤器和排序所做的那样。
比如要查询docId字段为1的文档,可以使用:
Document document = db.getCollection("test").find(new Document("$eq", new Document("docId", 1)).first();
或者,这很棒(假设您已导入 model.Filters class):
Document document = db.getCollection("test").find(eq("docID",1)).first();
但是在聚合方面,您只有第一个版本可用:
AggregateIterable<Document> iterable = db.getCollection("test").aggregate(asList(new Document("$match", new Document("docId", 1))));
他们没有添加诸如匹配、分组、排序、展开等静态函数有什么特别的原因吗?又或许是我谷歌搜索太差以至于我没有找到它?
提前感谢您的解释!
实际上,深入了解后,恰好他们只是开发了这些静态功能,并且在 MongoDB Java Driver 的当前版本(3.1-SNAPSHOT)中可用 类 com.mongodb.client.model.Aggregates
和 com.mongodb.client.model.Accumulators
.
- http://api.mongodb.org/java/3.1/?com/mongodb/client/model/Aggregates.html
- http://api.mongodb.org/java/3.1/?com/mongodb/client/model/Accumulators.html
还没说3.1什么时候发布due/planned。
我使用 MongoDB 3.0 和 Java 有一段时间了,直到现在我才不得不使用聚合。 我现在需要这样的功能,我想知道为什么 MongoDB 开发人员没有为聚合添加任何静态函数,就像他们为投影、过滤器和排序所做的那样。
比如要查询docId字段为1的文档,可以使用:
Document document = db.getCollection("test").find(new Document("$eq", new Document("docId", 1)).first();
或者,这很棒(假设您已导入 model.Filters class):
Document document = db.getCollection("test").find(eq("docID",1)).first();
但是在聚合方面,您只有第一个版本可用:
AggregateIterable<Document> iterable = db.getCollection("test").aggregate(asList(new Document("$match", new Document("docId", 1))));
他们没有添加诸如匹配、分组、排序、展开等静态函数有什么特别的原因吗?又或许是我谷歌搜索太差以至于我没有找到它?
提前感谢您的解释!
实际上,深入了解后,恰好他们只是开发了这些静态功能,并且在 MongoDB Java Driver 的当前版本(3.1-SNAPSHOT)中可用 类 com.mongodb.client.model.Aggregates
和 com.mongodb.client.model.Accumulators
.
- http://api.mongodb.org/java/3.1/?com/mongodb/client/model/Aggregates.html
- http://api.mongodb.org/java/3.1/?com/mongodb/client/model/Accumulators.html
还没说3.1什么时候发布due/planned。