0

로 집계 프레임 워크의 결과를 설정하는 우아한 방법은 http://mikaelkoskinen.net/mongodb-aggregation-framework-examples-in-c/ 다소 내가 달성하기 위해 노력하고 무엇을 보여줍니다. 이 "ToDynamic"호출은 집계에서 반환되는 DateTime 값을 중단시킵니다.MongoDB를이 짧고 이해하려면 POCO

public static dynamic ToDynamic(this BsonDocument doc) 
    { 
     var json = doc.ToJson(new JsonWriterSettings { OutputMode = JsonOutputMode.TenGen }); 
     dynamic obj = JToken.Parse(json); 
     return obj; 
    } 

이 성공적으로 내가 사용하여 분석 할 수 있었다있는 JContainer에이 개체를 변형 할 수 있었다 :

우리가 날짜 시간을 필요로하는 이해와

, 나는이 점을 변환 할 수 있었다 우리가 ObjectId가에 걸릴뿐만 아니라 것을 직렬화하고 싶어 할 때까지
returnApp = BsonSerializer.Deserialize(service.apps.ToString(), typeof(MyMongoObject)); 

이 작동했다. 이 일련의 작업은 반환되는 ObjectId를 구문 분석 할 수 없기 때문에 "ToDynamic"호출에서 중단되었습니다.

는 사람이 POCO로 집계 프레임 워크의 결과를 돌려의 지속적 성공, 우아한 방법을 발견 했습니까?

+0

당신이 구문 분석하지 않는 일부 콘크리트 MongoDB를 기록 예제를 게시 할 수 있을까요? –

답변

0

등 ISODate(), BinData()와 ObjectId가()와 같은 10gen 특정 값을 포함하여 예제에서 변수 'JSON'. 나는 JToken.Parse (TXT)이 TXT가 유효 JSON,하지 bson이 될 것으로 기대하고 의심 것입니다. 다음 라인 JToken.Parse()에

는 JSON 같은-하지만-실제로 독점 문자열을 받아 파싱하려고합니다. 당신은 더 나은 할 것을 BsonReader를 사용하고 JToken.ReadFrom (myBsonReader)를 사용하여 제공 할 수

using (var reader = new BsonReader(inputStream)) 
{ 
    var json = (JObject)JToken.ReadFrom(reader); 
}