आप LINQ सिंटैक्स का उपयोग कर सकते हैं जो एग्रीगेशन फ्रेमवर्क के सिंटैक्स में अनुवादित हो जाता है। मान लें कि आपके पास निम्नलिखित Model
हैं कक्षा:
public class Model
{
public DateTime Timestamp { get; set; }
public float Value { get; set; }
}
आप where
का उपयोग कर सकते हैं टाइमस्टैम्प श्रेणी निर्दिष्ट करने के लिए और फिर group
. का उपयोग करें null
. के साथ समूहीकरण कुंजी के रूप में। MongoDB ड्राइवर Min
translate का अनुवाद करेगा , Max
और Average
अनाम प्रकार से $max
. में , $min
और $avg
एग्रीगेशन फ्रेमवर्क सिंटैक्स से
var q = from doc in Col.AsQueryable()
where doc.Timestamp > DateTime.Now.AddDays(-3)
where doc.Timestamp < DateTime.Now.AddDays(3)
group doc by (Model)null into gr
select new
{
Avg = (double)gr.Average(x => x.Value),
Min = gr.Min(x => x.Value),
Max = gr.Max(x => x.Value)
};
var result = q.First();
MongoDB ड्राइवर द्वारा समर्थित संचायकों की सूची पाई जा सकती है यहाँ ।
संपादित करें:(Model)null
आवश्यक है क्योंकि क्वेरी को $group
. में रूपांतरित किया जाना है _id
. के साथ null
पर सेट करें (docs
) चूंकि आप समुच्चय के साथ एक परिणाम प्राप्त करना चाहते हैं। कास्टिंग केवल C# कंपाइलर उद्देश्य के लिए आवश्यक है क्योंकि doc Model
. प्रकार का है ।