我有很多像sample1,sample2和sample3的查詢。 MongoDB收集中有超過1300萬條記錄。所以這個查詢花了很長時間。有什麼辦法可以加快這個查詢嗎?如何更快地完成mongodb查詢?
我想使用IMongoQuery對象來解決這個問題。有沒有更好的方法?
樣品1:
var collection = new MongoDbRepo().DbCollection<Model>("tblmodel");
decimal total1 = collection.FindAll()
.SelectMany(x => x.MMB.MVD)
.Where(x => x.M01.ToLower() == "try")
.Sum(x => x.M06);
樣品2:
var collection = new MongoDbRepo().DbCollection<Model>("tblmodel");
decimal total2 = collection.FindAll().Sum(x => x.MMB.MVO.O01);
樣品3:
var list1= collection.FindAll()
.SelectMany(x => x.MHB.VLH)
.Where(x => x.V15 > 1).ToList();
var list2= list1.GroupBy(x => new { x.H03, x.H09 })
.Select(lg =>
new
{
Prop1= lg.Key.H03,
Prop2= lg.Count(),
Prop3= lg.Sum(w => w.H09),
});
你認爲xxxx是你的問題?什麼問題?請你注意解釋一下,因爲「很長一段時間」並不能真正給我們提出這個問題的想法。你甚至可以解釋這些LINQ查詢如何擴展到Mongo shell中的查詢中嗎? –
並通過你的問題排序提議繞過LINQ。這*可能是值得的。 –
'FindAll'很少是你想使用的。閱讀[MongoDB LINQ教程](http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/)以更好地處理如何正確執行此操作。 – JohnnyHK