2017-04-05 48 views
0

嗨,我是新手mongodb。我有一個文件喜歡這裏Mongodb嵌套數組限制和使用C排序#

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

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

我想對學生運用陣列和限制使用sortBy碼C#MongoDB的驅動程序

請提出任何辦法做到這一點。

在此先感謝

回答

0

使用AsQueryable已

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

現在用這個,我能夠創造的MongoDB查詢我。它的工作原理。我得到需要的結果

0

它使用MongoDB.Driver 2.4版本:

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變量是通過標記來分類的學生數量有限的清單。

更新

這也適用於:

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