2017-04-24 71 views
-1

在我的C#控制檯應用程序項目中,我使用MongoDB.Driver.2.4.3連接到MongoDB 3.2.10。c#mongodb收集計數並從查詢中查找文檔結果

如何計算文檔數量,從篩選查詢中查找第一個和最後一個文檔?

static void Main(string[] args) 
    { 
     DateTime myTimeConvert = DateTime.Now; 

     var client = new MongoClient("mongodb://localhost:27017"); 
     var DB = client.GetDatabase("football"); 

     var players = DB.GetCollection<Player>("players"); 


     var playersInBrazil = players.AsQueryable() 
         .Where(p => p.country == "Brazil"); 
     //count the number of documents and find the first and the last document from the filtered query 

    } 

    internal class Player 
    { 
     public ObjectId Id { get; set; } 
     public string firstname { get; set; } 
     public BsonDateTime birthdate { get; set; } 
     public string country { get; set; } 
     public double goals { get; set; } 
    } 


} 

回答

0
var countPlayersInBrazil = players.AsQueryable().Count(p => p.country == "Brazil"); 
var firstPlayersInBrazil = players.AsQueryable().First(p => p.country == "Brazil"); 
var lastPlayersInBrazil = players.AsQueryable().Last(p => p.country == "Brazil"); 
+0

感謝 - 的countPlayersInBrazil和firstPlayersInBrazil變量的作品,但我lastPlayersInBrazil得到錯誤:未處理的異常:System.NotSupportedException:該方法最後表達式樹不支持:骨料([])。最後(p =>(p.country ==「Brazil」))。 – ikask

+0

我應該添加我跑這些來測試variables.Console.WriteLine(countPlayersInBrazil); Console.WriteLine(firstPlayersInBrazil.firstname); Console.WriteLine(lastPlayersInBrazil.firstname); – ikask

+0

我會懷疑,首先是支持,但最後不是。我想你想得到這個工作sp做以下。 players.AsQueryable()。其中​​(p => p.country ==「Brazil」)。ToList()。然後做點數,首先就是這個。那麼你已經離開了蒙戈世界。不是最有效的,但嘿,巴西不應該有那麼多球員:) – SJFJ