2017-03-23 11 views
1

간체 문서에 컬렉션의 일부 문서를 매핑해야합니다. 본인은 몽고 쉘에두고 필요한 얻을 수 있습니다mongodb C# 드라이버로지도 투영 결과

db.getCollection('items').aggregate([ 
{ "$project": { 
    "Team": "$TeamId", 
    "Marker": "$Properties.marker.Value" 
}} 
]) 

내가 C#을 드라이버 (버전 2.3.0)와 같은 결과를 얻을 필요가; 나는이

var aggregation = m_database.GetCollection<BsonDocument>("items").Aggregate(); 
var projectionDefinition = new BsonDocument("$project", new BsonDocument 
      { 
       { "Team", "$TeamId"}, 
       { "Marker", "$Properties.marker.Value" } 
      }); 

var query = aggregation.Project(projectionDefinition); 
var result = await query.ToListAsync(); 

을 시도하지만

명령 집계 실패 다음과 같은 오류 얻을 : 표현식은 $ 프로젝트의 최상위에서 허용되지 않습니다 $를

누군가에 무슨 일이 일어나고 있는지 kwons ?

var projectionDefinition = new BsonDocument 
     { 
      { "Team", "$TeamId"}, 
      { "Marker", "$Properties.marker.Value" } 
     }; 

내 개인적인 의견 : : MongoDB의 드라이버가 제공 나는 순수한 bson을 사용하지 않는 것이 당신 가능성이 사용하는 당신이 Project 전화 당신은 그래서 당신은 당신의 projectionDefinition를 단순화하여 bson 이미 $project, 이있는 경우

답변

2

그것을위한 당신의 C# dto 클래스들.

+0

고마워요! 나를 잘못된 방향으로 끌어들이는 코드를 복사했습니다. 나는 순수한 bson을 피하기위한 충고에 동의한다. (나는 보통 그렇게한다. 그러나이 경우 순수한 bson을위한 이유는 그것이 나를 위해 더 실현 가능하다) –