2017-07-04 10 views
1

ゲット私は私のコレクションで、次のコレクションを持っていますC#は、最後の配列要素

{ 
    "Target_Year" : 2017, 
    "Target_Month" : 6, 
    "Performance" : [ 
     { 
     "Report_Day": 1, 
     "First_Level_Superior" : "WS66" 
    }, 
    { 
     "Report_Day": 2, 
     "First_Level_Superior" : "CN4" 
    } 
}, 
{ 
    "Target_Year" : 2017, 
    "Target_Month" : 7, 
    "Performance" : [ 
     { 
     "Report_Day": 10, 
     "First_Level_Superior" : "WS66" 
    }, 
    { 
     "Report_Day": 11, 
     "First_Level_Superior" : "CN4" 
    } 
} 

私は、すべてのパフォーマンスを取得するためのコードを持っています。

var builder = Builders<BsonDocument>.Filter; 
var filterMain = builder.Eq("Target_Year", "2017") 
var project = Builders<BsonDocument>.Projection.Include("Performance.$"); 
var result = mongoDB.Performance.Find(filterMain).Project(project).ToList(); 

すべてのドキュメントではなく、各ドキュメントのmax Report_Dayサブドキュメントを取得するにはどうすればよいですか?

+0

が、私は私があなたの記事に書式設定を修正保つことに注意する必要があります。実際にどのようにフォーマットが正しく行われたかを見て、今後のすべての投稿でそれをフォローしてください。 –

+0

それに留意してください。念押し有難う。:) –

答えて

1

あなたはここに$sliceが「最新」または「最大」である「最後の」取得したい:申し訳ありません

var builder = Builders<BsonDocument>.Filter; 
var filterMain = builder.Eq("Target_Year", "2017") 
var project = Builders<BsonDocument>.Projection.Slice("Performance",-1); 
var result = mongoDB.Performance.Find(filterMain).Project(project).ToList(); 
関連する問題