2012-09-14 4 views
0

필자는 kinvey (BAAS) 문서를 검토하고 Map/reduce를 사용하여 집계 개념을 살펴 보았습니다.Kinvey Rest API - C# 백엔드를 사용하는 집계 (지도/축소)

http://docs.kinvey.com/rest-aggregation.html

Kinvey는 닷넷 SDK, 우리는 나머지 API를 사용하는 것입니다 수있는 유일한 옵션이 제공되지 않기 때문에. REST API에 익숙하지만 위의 설명서와 같이 C# 백엔드 코드의 API 요청 매개 변수에서 Map/Reduce 구문을 어떻게 구성합니까?

우리가 만들고자하는 Windows Phone 앱에는 백엔드에 C# 코드가 있습니다. 우리가 앱에 표시하고자하는 몇 가지 집계 모듈/데이터 포인트가 있습니다. Linq를 사용하고 코드에서 처리하는 대신 MongoDB에서 실행될 때 kinvey에서 제공하는 Map/reduce 기능을 활용하려고했습니다.

나는 누군가가 그것에 대해 밝힐 수 있다면 고맙겠습니다. appkey이 응용 프로그램 ID입니다 : collectionName 사용은 당신이 집계를 실행하려는 특정 모음입니다

덕분에 라훌

답변

1

당신은 /appdata/:appKey/:collectionName/_group에 POST 요청을 보내려고합니다.

그런 다음 본문에, 당신은 매개 변수를 /지도를 지정 줄이고 자 :

이 예에서
{ 
    "key": { 
    "lastName":true 
    }, 
    "initial": { 
    "count": 0 
    }, 
    "reduce": "function(doc,out){ out.count++;}", 
    "condition": { 
    "age": { "$gt":31 } 
    } 
} 

는 "key은"집계됩니다 엔티티 열 이름을 지정합니다. 대개의 경우에는 하나만하고 싶지만 여러 개를 지정할 수 있습니다. "initial"은 감소 시작 값을 시드합니다.이 값은 계산 예이므로 0부터 시작합니다. "reduce"은 자바 스크립트 함수입니다. 엔티티 (doc)와 반환 객체 (out)가 전달됩니다. 인원수 대신 모든 사람의 연령을 합산하고자한다면 다음과 같이하십시오 : out.count += doc.age. 마지막으로 선택적 "condition"을 지정할 수 있습니다. 이 필터는 쿼리 언어를 사용하는 필터이므로 조건을 충족시키는 엔티티 만 평가됩니다.

다음은 MongoDB 집계 문서입니다. http://www.mongodb.org/display/DOCS/Aggregation

쿼리 구문에 대한 Kinvey 설명서는 다음과 같습니다. http://docs.kinvey.com/rest-filtering.html (POST uri가 아니라 body 개체의 조건의 일부 임).

필요할 경우, Dicitonary를 JSON으로 변환하는 것에 대한 질문입니다. How do I convert a dictionary to a JSON String in C#?

+0

설명해 주셔서 감사합니다. 명확한 설명을 위해 Kinvey 설명서에 따르면 POST URI에 필터링 조건을 넣는 것이 좋습니다. 따라서 집계와 함께 BODY에 필터링을 넣는 것이 더 좋습니다. 감사합니다. – Rahul

+1

집계의 경우 필터를 본문의 조건 인수로 사용하는 것이 좋습니다. –