2012-05-24 4 views
0

몽고 그룹화는 DB 수준에서 발생하지 않고 다음 코드로 몽고 집계 프레임 워크를 사용하지 않는 사용하지 않습니다. 왜 그런가? CommandDocument와 RunCommand를 생성해야만 집계 프레임 워크 만 사용합니다.몽고 그룹화 DB 수준에서 발생하지 않고 몽고 집계 프레임 워크

public IEnumerable<IGrouping<TKey, T>> GetItemsByQuery<TKey>(IMongoQuery query, FieldsBuilder fieldsBuilder, Func<T, TKey> groupbyKey) 
{ 
    var mongoCursor = collection.FindAs<T>(query); 
    mongoCursor.SetFields(fieldsBuilder); 
    return mongoCursor.GroupBy(groupbyKey); 
} 

답변

0

1) 통합 프레임 워크는 MongoDB를 버전 2.1 이상의 불안정 버전에서만 지원됩니다. 서버 2.2에서 공식적으로 지원됩니다. 따라서 서버 2.1 이상을 실행하지 않는 한이 기능 서버 측은 사용할 수 없습니다.

2) 드라이버는 아직 집계 프레임 워크를 지원하지 않습니다. 집계를 수동으로 빌드하고 db.RunCommand를 사용하여 집계를 실행할 수 있습니다.

3) 당신은 MongoCursor의 해제는 IEnumerable 확장 메서드를 호출한다. MongoCursor는 당신이 요구하는 것에 대해 어떤 생각을 가지고 있습니다. 그러므로 그룹화는 고객 측에서 일어납니다. Group이라는 컬렉션에 메소드가 있지만,이를 실행하려면 자바 스크립트를 작성해야합니다.

모두 모두

, 우리는 아직 큰 집계 이야기를하지 않습니다. 서버 2.2에서는 변경 될 예정이지만 아직 여기에는 없습니다.