MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB.Driver.Builders कैसे समूहित करें और औसत प्राप्त करें

नए MongoDB .NET ड्राइवर (2.0 - http://docs.mongodb.org/ecosystem/drivers/csharp/) के साथ, लिंक समर्थन पूरी तरह से समर्थित है, यहां प्रश्न का सिंथैक्स नए ड्राइवर का उपयोग करना है। BsonDocument सिंथैक्स का उपयोग करने से पहले बहुत अधिक पठनीय .NET कोड।

    public async Task<List<DailyStat>> GetLast31DaysReport(string id)
    {
        var mc = new MongoClient(_url);
        var db = mc.GetDatabase(DbName);
        var collection = db.GetCollection<Reading>(CollectionName);

        DateTime from = DateTime.Now.AddDays(-31);
        DateTime to = DateTime.Now;

        var output = await collection.Aggregate()
            .Match(r => r.SensorId == id)
            .Match(r => r.Date <= to)
            .Match(r => r.Date >= to.AddDays(-31))
            .Group(r => new { groupedYear = r.Date.Year, groupedMonth = r.Date.Month, groupedDay = r.Date.Day }, g =>
                new {
                    Key = g.Key,
                    avgValue = g.Average(x => x.Value),
                    minValue = g.Min(x => x.Value),
                    maxValue = g.Max(x => x.Value)
                })
            .Project(r => new DailyStat()
                {
                    Day = r.Key.groupedDay,
                    Month = r.Key.groupedMonth,
                    Year = r.Key.groupedYear,
                    Value = r.avgValue,
                    MinValue = r.minValue,
                    MaxValue = r.maxValue
                })
            .ToListAsync().ConfigureAwait(false);

        var returnList = new List<DailyStat>();
        while (returnList.Count < 31)
        {
            var value = output.FirstOrDefault(rec => rec.Day == from.Day && rec.Month == from.Month && rec.Year == from.Year);
            returnList.Add(value ?? new DailyStat() { Month = from.Month, Year = from.Year, Day = from.Day, Value = 0, MaxValue = 0, MinValue = 0 });
            from = from.AddDays(1);
        }
        return returnList;
    }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. समय के साथ दस्तावेज़ सम्मिलित करते समय डिफ़ॉल्ट तिथि निर्धारित करें। समय क्षेत्र

  2. Model.find().toArray() .toArray() विधि नहीं होने का दावा करते हुए

  3. Mongodb, $lookup . के साथ कुल क्वेरी

  4. मोंगोडीबी $पॉप

  5. MongoDB में एक मल्टीकी इंडेक्स बनाएं