C# Mongodb-仅使用c按日期搜索#
我像这样使用pocoC# Mongodb-仅使用c按日期搜索#,c#,mongodb,C#,Mongodb,我像这样使用poco public class Log { public ObjectId Id { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime DateTime { get; set; } public LogLevel Level { get; set; } [BsonIgnoreI
public class Log
{
public ObjectId Id { get; set; }
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime DateTime { get; set; }
public LogLevel Level { get; set; }
[BsonIgnoreIfNull]
public TraceLogEntity Exception { get; set; }
}
然后使用
var filter = Builders<Log>.Filter.Empty;
filter &= Builders<Log>.Filter.Where(l => l.DateTime.Equals(DateTime.Now.ToShortDateString()));
var collection = _context.Log.Find(filter).Limit(100).ToList();
以DB为单位保存的值
在2.4.2中,隐式转换和空引用似乎存在缺陷。这两个错误在2.4.3中都已修复 & 顺便说一句,我应该注意到,您试图将字符串日期与表达式中有效的日期类型进行比较,C#driver负责将其转换为日期 你有两个选择 升级至2.4.3 另一个选项是使用日期类型。在2.4.2中,以下两种变体都可以正常工作
filter &= Builders<Log>.Filter.Where(l => l.DateTime.Equals(DateTime.Now));
filter &= Builders<Log>.Filter.Eq(l => l.DateTime, DateTime.Now);
filter&=Builders.filter.Where(l=>l.DateTime.Equals(DateTime.Now));
filter&=Builders.filter.Eq(l=>l.DateTime,DateTime.Now);
您的c#驱动程序版本是什么?c#驱动程序-2.4.2我已经升级到2.4.3,现在它不会抛出错误,但我没有得到任何东西,我只想比较日期而不是时间我有保存在DB中的附加值
filter &= Builders<Log>.Filter.Where(l => l.DateTime.Equals(DateTime.Now));
filter &= Builders<Log>.Filter.Eq(l => l.DateTime, DateTime.Now);