2012-05-04 9 views
2

리뷰가 작성된 날짜까지 MongoDB 배열을 정렬 할 수 있습니까? 쿼리 연산자를 사용하는 대신 서버 쪽 스크립트에서이 작업을 수행해야합니까? 그렇다면 어떻게해야할까요? 당신이 태그에 을 넣어 때문에MongoDB 정렬 배열

{ 
    "review": [ 
    { 
     "date": "2012-05-04 21:06:58", 
     "review": "The Review", 
     "name": "The Persons Name", 
    }, 
    { 
     "date": "2012-09-04 21:06:58", 
     "review": "The Review", 
     "name": "The Persons Name", 
    }, 
    { 
     "date": "2012-02-04 21:06:58", 
     "review": "The Review", 
     "name": "The Persons Name", 
    } 
    ], 
    "category": "Category 1", 
    "country": "USA", 
    "date": "2012-05-04 21:06:58" 
} 
+0

[usort] (usort) (http://www.php.net/usort) – ngsiolei

답변

2

, 난 당신이 PHP와 협력하고 있다고 가정합니다. 이것을 위해 자신 만의 정렬 함수를 만들 수 있으며 PHP usort() 함수를 호출해야합니다.

function sort_date($a, $b) 
{ 
    return (strtotime($a['date']) - strtotime($b['date'])); 
} 

usort($reviews_array, 'sort_date'); 

위의 코드는 리뷰를 날짜순으로 오름차순으로 정렬합니다.

+0

비교기를 써서 비교기를 작성하는 방법은'return (strtotime ($ a) - strtotime ($ b)); – Corbin

+0

그래서 몽고브 (mongodb)에서 이런 일을하는 것은 불가능합니까? 이것을 물어 보도록하겠습니다. 이와 같은 기능을 사용하여 100 개의 리뷰를 정렬하거나 리뷰를 제품 컬렉션에서 분리하고 리뷰 콜렉션을 작성하는 것이 더 빠르다고 생각합니까? – cKendrick

+0

@cKendrick MongoDB에 대한 전문가가 아니기 때문에 불가능하다고 말할 수는 없습니다. 나는이 해답을 대안으로 제시했다. 제가 당신이라면 리뷰를 다른 컬렉션으로 분리 할 것입니다. –