2012-06-06 1 views
0

solr 쿼리에서 groupby를 수행 한 후 다음 형식으로 응답을받습니다. 따라서 각각의 개별 groupValue 어레이 형성배열을 생성하는 동안 키 이름 변경

for(var chl in data.grouped.channel_id.groups) { 
    config['playlist'].push(data.grouped.channel_id.groups[chl]['doclist']['docs']); 
} 

: I는 I는 다음과 같은 방식으로 배열 반응을 복용하고 SOLR 버전 3.5

"grouped":{ 
    "channel_id":{ 
     "matches":48, 
     "ngroups":26, 
     "groups":[{ 
      "groupValue":"204", 
      "doclist":{"numFound":1,"start":0,"docs":[ 
       { 
       "channel_name":"ZeeTv", 
       "channel_num":4, 
       "title":"The Name", 
       "channel_id":"204" 
      }}, 
     { 
      "groupValue":"166", 
      "doclist":{"numFound":2,"start":0,"docs":[ 
       { 
       "channel_name":"Sony", 
       "channel_num":2, 
       "title":"The Name", 
       "channel_id":"166", 
       { 
       "channel_name":"Sony", 
       "channel_num":2, 
       "title":"The Puzzle", 
       "channel_id":"166" 
      }}]}} 

를 사용하고있다. 배열의 struture입니다 : "0",

"0"=>{"0"=>"value"},"1"=>{"0"=>"result1","1"=>"result2"} 

하지만 난 키 이름의 예를 변경하려면 "1"로 응답에서 groupValue 내가 모두를 확인 config['playlist']['166']을 할 수 있도록 배열을 만들 때에 이 배열에 대한 channel_id을 보여줍니다. 이 작업을 수행 할 수 있습니까? 또한 가능하면

"204"=>{"0"=>"value"},"166"=>{"0"=>"result1","1"=>"result2"} 

가 SOLR 쿼리는 할 수

응답에서 channel_num이 channel_num 2 첫 번째 결과, 즉 오름차순으로 오는 다음 4. 짓을 groupby:channel_id

답변

2
: 나는 다음을 기대하고있다

그게 뭐죠?

for(var chl in data.grouped.channel_id.groups) { 
    config['playlist'][data.grouped.channel_id.groups[chl].groupValue] = data.grouped.channel_id.groups[chl]['doclist']['docs']; 
} 

배열 끝 부분에 요소를 추가하려면 누르십시오. 하지만 자바 스크립트 객체는 해시 테이블 일 뿐이므로 이러한 방식으로 사용할 수 있습니다.

그런데

, 당신은 함께 코드를 간단하게 만들 수있는 for each :

for each(var chl in data.grouped.channel_id.groups) { 
    config['playlist'][ch1.groupValue] = ch1['doclist']['docs']; 
} 
+1

두 번째 코드 블록이 파이어 폭스 외부의 유효한 자바 스크립트가 아닙니다. 또한 모든 for-each 루프에는 hasOwnProperty 검사가 없습니다. –

+0

첫 번째 코드 블록이 예상대로 작동합니다. – user850234

+2

배열에서'for' ...'in'을 사용하면 안됩니다. 'len = data.grouped.channel_id.groups.length;를 사용하십시오. for (var chl = 0; chl

2

Pikrass은 지금까지 귀하의 질의에 다음을 추가 시도를 우려 channel_num으로 주문과 같이 ... 제대로 대답했습니다

&sort=channel_num asc 
+0

동시에 두 가지 대답을 받아 들일 수 없으므로 투표 할 수 없습니다. 감사 – user850234