在gmongo 0.9.1聚合(Aggregations in gmongo 0.9.1)

2019-10-30 07:25发布

我需要实现我的应用程序的一些简单的聚合搭载的Grails 1.3.7。 的1.0.0.RC3附带gmongo 0.9.1,其中聚合函数不落实MongoDB的的插件。

我怎样才能解决这个问题? 是否有任何挂钩调用Java的API蒙哥直接,也许有一些其他的插件版本,允许聚合?

TIA

Answer 1:

看来,由于存在2.1蒙戈聚集的API 在这里 ,也许你可能需要升级你的库。 这里是MongoDB的插件文件被谈论访问底层API。 Grails的1.3.7采取在这个博客上如何添加更近蒙戈库到您的Grails应用程序的细节和该职位似乎有同样的问题。

希望能帮助到你。



Answer 2:

聚集仅在GMongo 1.0+工作。



Answer 3:

嗯,这似乎是不可能与现有gmongo /蒙戈 - 格姆做到这一点。 有太多的版本冲突:不同蒙戈Java驱动程序,不同常规版本等我看到很多ClassNotFoundExceptions和一致好评。

幸运的是,我现在不需要的聚合功能,所以我就等着升级到Grails的2.x和蒙戈 - 格姆1.3 ++后



Answer 4:

所以,我成功了!

与流血的少量,我找到了一种方法gmongo 0.9.1 / MongoDB的1.0.0.RC3 / Grails的1.3.7使用聚合!

如何:

  1. 你需要用较新版本替换蒙戈-Java的应用程序(我用的是最新的2.9.3现在)。 在Grails的它看起来像:

    依赖{编译 'org.mongodb:蒙戈的Java驱动程序:2.9.3'}

  2. 在引导或在我的情况插件描述符中添加以下行:

    DBCollectionPatcher.PATCHED_METHODS << '聚集'

  3. 聚集调用是这样的:

    DEF解析度= Task.collection.aggregate([$组:[_id: 'TOTALTIME',时间:[$总和: '$时间']]],[]为DBOBJECT)。结果()

和它的作品就像一个魅力!



文章来源: Aggregations in gmongo 0.9.1