C#Mongodb找到最近的藏品时间

时间:2016-01-30 07:09:26

标签: c# mongodb datetime

我有一个包含DateTime的集合。

public class Trade
{
        public ObjectId Id { get; set; }
        public DateTime Expiary { get; set; }
}

我正在使用c#驱动程序,我希望从Trade集合中获得最接近的Expiry。 可以在mongodb中将最近的日期带到指定日期吗? 的更新

之类的东西
collection.FindClosest(x => x.Expiary , DateTime.Now.AddDays(-1))

1 个答案:

答案 0 :(得分:1)

如果我理解正确,“最近的日期”可以被视为:

        var record = tests.Find(p => p.Date <= closestTo)
            .SortByDescending(p => p.Date)
            .FirstOrDefault();

当然,可能会有一个文档的日期“更接近”您在更高的范围内所寻找的内容,但是“未来”会过滤到您的过滤器,在这种情况下,您可以跳过并获取最接近的旧版本。如果您的要求确实要求您获得该项目,我必须说我不知道​​这样做的“Mongo方式”。可以通过运行此查询两次来完成,第二次将顺序反转(和.Date&gt; nearestTo)并验证进程中哪两个对象最接近。