我有一个包含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))
答案 0 :(得分:1)
如果我理解正确,“最近的日期”可以被视为:
var record = tests.Find(p => p.Date <= closestTo)
.SortByDescending(p => p.Date)
.FirstOrDefault();
当然,可能会有一个文档的日期“更接近”您在更高的范围内所寻找的内容,但是“未来”会过滤到您的过滤器,在这种情况下,您可以跳过并获取最接近的旧版本。如果您的要求确实要求您获得该项目,我必须说我不知道这样做的“Mongo方式”。可以通过运行此查询两次来完成,第二次将顺序反转(和.Date&gt; nearestTo)并验证进程中哪两个对象最接近。