C#Mongo Aggegation为最小值

时间:2018-02-15 16:33:06

标签: c# mongodb aggregation-framework

我正在尝试获取我的收藏的最小数据,以下查询适用于我。现在我正在尝试为这个最小值添加时间戳我该怎么做?

public class Metric
{
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public string TagName{ get; set; }

    public DateTime TimeStamp { get; set; }

    public decimal? Val { get; set; }

}

               var x2 = aggregate.Group(
                                x => x.TagName,
                                g => new
                                {
                                    MinVal = g.Select(
                                        x => x.Val
                                    ).Min()

                                }
                                )).ToList();

1 个答案:

答案 0 :(得分:0)

而不是聚合,你必须按Val排序,然后选择第一项。

var item = aggregate.Sort(x => x.Val).First();

然后你可以得到item.Timestamp。如果可能存在重叠,并且您需要最小时间戳,则必须按Val和Timestamp排序。