Noe*_*oel 8 mongodb mongodb-.net-driver
我试图找到在指定时间内创建的所有文档.我正在使用c#和mongodb c#驱动程序.
我的实体如下:
public class Entity
{
public Gid Id { get; private set; }
public DateTimeOffset CreationTimestamp { get; private set; }
public Entity()
{
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想我可以这样做:
DateTime compareTime = DateTime.UtcNow.AddMinutes(-15);
var result = _collection.Find(Query.GT("CreationTimestamp", compareTime)).Count();
Run Code Online (Sandbox Code Playgroud)
即使集合中有数据,结果也是零.如果我从DateTimeOffset更改为DateTime,我将返回结果.
问题是不支持DateTimeOffset类型吗?如果是这样,我需要我的实体使用DateTimeOffset吗?
Cra*_*son 11
DateTimeOffset根本不是序列化为Date,而是(默认情况下),作为[ticks,timezone offset]的数组.因此,您无法以与正常日期相同的方式查询它.相反,我们将根据刻度查询.您需要确保您的时区偏移量相同,否则这将无效.
DateTimeOffsett compareTime = DateTimeOffsett.UtcNow.AddMinutes(-15);
var result = _collection.Find(Query.GT("CreationTimestamp.0", compareTime.Ticks)).Count();
Run Code Online (Sandbox Code Playgroud)
基本上,我们将比较存储数组的第一个元素和tick计数.再次抱歉得到这个答案的时间.
| 归档时间: |
|
| 查看次数: |
4075 次 |
| 最近记录: |