2017-04-05 9 views
0

こんにちは、私はmongodbの初心者です。私はC#のMongoDBのドライバにMongodbネストされた配列limtとC#を使用したソート

を使用して、学生アレイとSORTBYマークの制限を適用するこれを行うにはどのような方法を提案してくださいここで

{ 
    "_id" : "58e46f81c4734559ac8082f0", 
    "Name" : "test", 
    "Students" : [ 
     { 

      "Name" : "A", 
      "Marks" : "3" 
     } 
        ] 
    } 

のような文書を持っています。これを使用して今

collection.AsQueryable().Where(predict).SelectMany(Property).OrderByDescending().Take(number)

AsQueryable

使用して、事前

答えて

0

おかげで私は私のために動作します.IT MongoDBのクエリを作成することができています。

var context = new Context(); 
var builder = Builders<Thing>.Filter; 
var filter = builder.Eq(x => x.Name, "test"); // Or by Id, etc. 
var result = context.ThingCollection.Find(filter).SingleOrDefault(); 
var students = result.Students.OrderByDescending(x => x.Marks).Take(limit).ToList(); 

students変数がマークでソートされた学生の限られた数のリストである:私は、これはMongoDB.Driverバージョン2.4を使用して必要な結果に

0

を取得しています。

更新

また、これは動作します:

var result = context.ThingCollection.Find(filter).Project(x => x.Students.Select(y => y).OrderByDescending(z => z.Marks).Take(3)).ToList(); 
+0

そのメモリ処理に。私はデータベースから必要なデータだけを取得するクエリが必要です。結果にメモリ処理を必要としない – user2797910

+0

したがって、ドキュメントの一部をフェッチしたいですか? – Mahdi

+0

いいえ、私はちょうど入れ子になった配列の部分がほしいです – user2797910

関連する問題