Kinvey Rest API——使用C#后端的聚合(映射/减少)
我在浏览kinvey(BAAS)文档时,发现了使用Map/reduce的聚合概念 由于Kinvey没有.NETSDK,我们唯一的选择就是使用RESTAPI。 我熟悉restapi,但是,根据文档(上面的链接),但是,如何在C#后端代码中的API请求参数中构造Map/Reduce语法 我们要制作的windows Phone应用程序的后端将包含C#代码。我们希望在应用程序中显示两个聚合模块/数据点。我想利用kinvey在MongoDB上运行时提供的Map/reduce功能,而不是使用linq并在代码中进行处理 如果有人能解释一下,我将不胜感激 谢谢Kinvey Rest API——使用C#后端的聚合(映射/减少),c#,api,rest,mapreduce,C#,Api,Rest,Mapreduce,我在浏览kinvey(BAAS)文档时,发现了使用Map/reduce的聚合概念 由于Kinvey没有.NETSDK,我们唯一的选择就是使用RESTAPI。 我熟悉restapi,但是,根据文档(上面的链接),但是,如何在C#后端代码中的API请求参数中构造Map/Reduce语法 我们要制作的windows Phone应用程序的后端将包含C#代码。我们希望在应用程序中显示两个聚合模块/数据点。我想利用kinvey在MongoDB上运行时提供的Map/reduce功能,而不是使用linq并在代
Rahul您要向
/appdata/:appKey/:collectionName/\u group
发送POST请求,其中:appKey是应用程序id,而:collectionName是要在其上运行聚合的特定集合
然后在主体中,您要指定贴图/减少参数:
{
"key": {
"lastName":true
},
"initial": {
"count": 0
},
"reduce": "function(doc,out){ out.count++;}",
"condition": {
"age": { "$gt":31 }
}
}
在此示例中,“键
”指定将聚合的实体列名。大多数情况下,您只需要执行一个,但可以指定多个。“initial
”将reduce起始值作为种子,因为这是一个计数示例,所以它从零开始。“reduce
”是一个javascript函数;它传入实体(doc
)和返回对象(out
)。如果您想将每个人的年龄相加,而不是人数相加,那么它应该是:out.count+=doc.age
。最后,您可以指定一个可选的“条件”
”;这是一个使用查询语言的过滤器,只有满足条件的实体才会被计算
以下是MongoDB聚合文档,仅供参考。你应该能找到里面列出的所有东西
以及查询语法的Kinvey文档:(请记住,这是body对象中条件的一部分,而不是POST uri中的条件)
如果您需要它,这里有一个关于将Dicitonary转换为JSON的问题 非常感谢您的澄清。只是为了澄清,根据Kinvey文档,它建议,将过滤条件放在POST URI中,因此您认为将过滤与聚合一起放在正文中更好吗。感谢聚合,我建议将过滤器作为主体中的条件参数。