groupby和加入couchbase lite for android

groupby和加入couchbase lite for android,couchbase,n1ql,couchbase-lite,couchbase-java-api,Couchbase,N1ql,Couchbase Lite,Couchbase Java Api,我有以下用于Android的文档: 用户: {"Type" : "User", "UserId" : 920, "InitialCommitment": 2000, "BlockId": 1, "_id" : "User_1_920"}, {"Type" : "User", "UserId" : 921, "InitialCommitment": 1800, "BlockId": 1, "_id" : "User_1_921"} 其中,Id是在类型\u BlockId\u Use

我有以下用于Android的文档:

用户:

 {"Type" : "User", "UserId" : 920, "InitialCommitment": 2000, "BlockId": 1, "_id" : "User_1_920"},     
 {"Type" : "User", "UserId" : 921, "InitialCommitment": 1800, "BlockId": 1, "_id" : "User_1_921"}
其中,Id是在类型\u BlockId\u UserId中形成的

兴趣:

 {"Type" : "Intr", "UserId" : 920, "IntrId":1, "Value": 11, "BlockId": 1, "_id" : "Intr_1_920_1"},     
 {"Type" : "Intr", "UserId" : 920, "IntrId":2, "Value": 5, "BlockId": 1, "_id" : "Intr_1_920_2"}
其中id是Intr\u BlockId\u UserId\u IntrId

基本上,我希望通过BlocKId获得聚合数据,如下所示:

   BlocKId: 1, totalCommitments:3800, totalInterests: 16
我在Type、UserId、IntrId和BlockId字段上有索引。我现在的问题是我的应用程序不编译,因为Sum函数不存在。第二,我正在做两个查询,一个是获取利益合计,另一个是获取承诺合计。是否可以一次加入查询

    val queryTotalCommitment: Query = QueryBuilder.select(
            SelectResult.expression(Function.Sum(Expression.property("InitialCommitment"))),
            SelectResult.property("BlockId"),
            .from(DataSource.database(database))
            .groupBy(
                    Expression.property("BlockId"))


    val queryTotalInterests: Query = QueryBuilder.select(
            SelectResult.expression(Function.Sum(Expression.property("Value"))),
            SelectResult.property("BlockId"),
            .from(DataSource.database(database))
            .groupBy(
                    Expression.property("BlockId"))

现在的错误是Sum不存在。我可以写吗?我已经从couchbaste.lite导入了函数,这是因为Kotlin。它在Java中工作得很好,因为非公共超类的公共成员可以从子类中看到,而在Kotlin中则不是这样

这是因为科特林。它在Java中工作得很好,因为非公共超类的公共成员可以从子类中看到,而在Kotlin中则不是这样

正如@Nie在他的链接中指出的那样,我们仍在努力使API Kotlin变得友好

使用
Sum
函数在Java中工作而不是在Kotlin中工作的具体原因是,在Java中,可以从子类中看到非公共超类的公共成员。科特林的情况并非如此。
Sum
方法在
Function
AbstractFunction
)的包保护超类中声明。这意味着科特林看不到它

我希望在今年年底的某个时候发布一个版本来解决这个问题


在此之前,最好的解决方案是使用Java编写QueryBuilder帮助类。

正如@Nie在他的链接中指出的那样,我们仍在努力使API Kotlin友好

使用
Sum
函数在Java中工作而不是在Kotlin中工作的具体原因是,在Java中,可以从子类中看到非公共超类的公共成员。科特林的情况并非如此。
Sum
方法在
Function
AbstractFunction
)的包保护超类中声明。这意味着科特林看不到它

我希望在今年年底的某个时候发布一个版本来解决这个问题

在此之前,最好的解决方案是使用Java编写的QueryBuilder助手类