groupby和加入couchbase lite for android
我有以下用于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
{"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助手类