2012-10-31 2 views
1

카운트 임베디드 된 게시물 id에 의해 desc로 정렬 된 모든 엔터티를 반환하는 쿼리를 작성하는 방법?모두를 찾고 카운트별로 정렬하는 방법?

샘플 데이터 :

{ "_id" : ObjectId("5090f8061e7bf28095000012"), 
    "name" : "test", 
    "post_ids" : 
    [ ObjectId("5090f8061e7bf28095000010") ], 
    [ ObjectId("5090f8061e7bf28095000011") ] }, 
{ "_id" : ObjectId("5090f8061e7bf28095000012"), 
    "name" : "test2", 
    "post_ids" : [ 
    ObjectId("5090f8061e7bf28095000010"), 
    ObjectId("509104ec1e7bf2989b00000b"), 
    ObjectId("509105001e7bf2989b00000f") ] } 

#my actual query returns only count: 
tags_by_count = Tag.desc(:post_ids).count 

답변

1

나는 이것이 MongoDB를에 가능하다고 생각하지 않습니다. 내가 읽고있는 모든 것은 배열의 길이와 색인을위한 두 번째 필드를 만드는 것을 제안합니다.

이 조금 오래된,하지만 여전히 관련이있을 수 : 대신 인덱스 종류의 자바 스크립트를 사용하여 필요로하기 때문에

https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/zSSnj6ldfLE 또한

, 가능하더라도, 그것 때문에 느린 것 당신은 확실히 배열 길이를 색인 할 수 없습니다.

+0

Aggregation Framework를 사용하면 쉽게이 작업을 수행 할 수 있습니다. 그러나 제안 된대로 배열 길이 필드를 추가하는 것이 훨씬 더 효율적입니다. – cirrus

관련 문제