我有一个mongodb集合,其中的字段以字符串格式存储时间。在我的C#代码中,模型具有类型为TimeStamp的属性:
public TimeSpan StartTime { get; set; }
我需要一个查询来获取StartTime大于UtcNow的所有文档。像这样:
var now = new TimeSpan(DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, DateTime.UtcNow.Second);
...
...
var docs = db.GetCollection<DocDataModel>("docs")
.AsQueryable()
.Where(e => e.StartTime > now)
但是我收到一条InvalidOperationException消息:不支持Where(({{document} {StartTime}> 12:04:52)))。
有什么办法可以正确地编写此查询?
答案 0 :(得分:0)
使用StartTime
将now
和long
变量转换为TimeSpan.Ticks
var now = new TimeSpan(DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, DateTime.UtcNow.Second).Ticks;
...
...
var docs = db.GetCollection<DocDataModel>("docs")
.AsQueryable()
.Where(e => e.StartTime.Ticks > now)