【问题标题】:Group by Field MongoDB Java Driver 3+按字段分组 MongoDB Java 驱动程序 3+
【发布时间】:2016-11-16 10:27:20
【问题描述】:

我想使用 MongoDB Java Driver 3.0 对我的整个文档应用组操作

我的查询是这样的:

db.coll.group( { key: {"field": 1}, cond: {}, reduce: function(curr, result){}, initial: {} } )

结果是:

{
        "field" : "A61038968K16X275KNWCEIHr"
    },
    {
        "field" : "AH1038968716P3210C6NiQpD"
    },
    {
        "field" : "AV1038968F16Q321DCxY7T6w"
    },
    {
        "field" : "A71038968K165321PLiEhbGJ"
    },
    {
        "field" : "AY1038968N16w321a537co1U"
    },
    {
        "field" : "AJ1038968E16S3212MJpeNNV"
    }

我正在尝试用 Java 做一些事情,例如:collection.aggregate(group("field")),但它不起作用。抱歉,如果这很简单,但我在谷歌上找不到任何东西。

谢谢!

【问题讨论】:

  • 我尝试了一些方法,可能不是很好的解决方案,但我认为我可以为您提供帮助 Iterable<Document> output = coll.aggregate( (List<? extends Bson>) Arrays .asList((DBObject) new BasicDBObject("$group", (DBObject) new BasicDBObject("_id", "$field") .append("count", (DBObject) new BasicDBObject("$sum", 1)))));

标签: java mongodb driver


【解决方案1】:

所以,我正在寻找的是一种“独特”的方法。

我的解决方案是:

collection.distinct(<string field>, <query>, <result class>);

例如,在我的例子中,我的结果类是一个字符串。

collection.distinct("field_grouping",gte("field_query", 1000),String.class);

之后你可以迭代你的结果并做任何你想做的事情:

Iterator<String> iterator = collection.distinct("field_grouping",gte("field_query", 1000),String.class).iterator();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2014-10-02
    • 2016-12-07
    • 1970-01-01
    相关资源
    最近更新 更多