Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mongodb-仅使用c按日期搜索#_C#_Mongodb - Fatal编程技术网

C# Mongodb-仅使用c按日期搜索#

C# 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

我像这样使用poco

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);