.net-5mongodb-.net-driver

Cannot find document with Date filter in C# using MongoDB.Driver


I'm trying to find document by exact datetime, but i got 0 as count. Here's my model:

public class CubeDataModel
    {
        [BsonId]
        [BsonRepresentation(BsonType.ObjectId)]
        public string _id { get; set; }
        ...
        public DateTime DateEnd { get; set; }
        ...
    }

Here's what i'm trying to do:

private readonly IConfiguration _configuration;
        private readonly ILogger<UpdateController> _logger;
        public UpdateController(IConfiguration configuration, ILogger<UpdateController> logger)
        {
            _configuration = configuration;
            _logger = logger;
        }
[HttpPost]
 public ActionResult<CubeDataModel> AddCubeData(string url){
var connectingString = _configuration.GetSection("MongoDB").GetValue<string>("MongoDBString");
var database = _configuration.GetSection("MongoDB").GetValue<string>("MongoDBDatabase");
var collectionName = _configuration.GetSection("MongoDB").GetValue<string>("MongoDBCollection");
var mongodb = getDatabase(connectingString, database).GetCollection<CubeDataModel>(collectionName);
...
string dateString = "15.04.2023";
var docDate = DateTime.ParseExact(dateString, "dd.MM.yyyy" ,null).AddHours(6);
var prev = mongodb.Find<CubeDataModel>(x => x.DateEnd > docDate && x.DateEnd < docDate.AddDays(1)).ToList();
var exact = mongodb.Find<CubeDataModel>(x => x.DateEnd == docDate).ToList();

}

In debug mode i watched these variables:

I'm trying to get that document by DateEnd, i don't know how to exactly find my solution, so if my question is duplicate, can you send link?

Versions:


Solution

  • This was due to Kind not being set; I resolved it by adding this code:

    docDate = DateTime.SpecifyKind(docDate, DateTimeKind.Utc);