var builder = Builders<ModelClass>.Filter; var filter = builder.Where(x => x.Active); if (fromDate.HasValue) { var date = fromDate.Value; var subfilter = builder.Where(x =>DateTime.Parse(x.EnrollmentDate) >= date); filter &= subfilter; }La fecha de inscripción se guarda como una cadena public string EnrollmentDate{ get; colocar; } , necesito filtrar documentos dentro de un rango de fechas establecido, pero ¿cómo comparo esto? necesito filtrar asi
Obtengo System.InvalidOperationException: Parse({document}{EnrollmentDate}) no es compatible. Error en línea de subfiltro
Creo que debe lograrlo con la consulta MongoDB de la siguiente manera:
{ "$expr": { "$gte": [ { "$toDate": "$EnrollmentDate" }, date ] } } Si bien creo que no se puede lograr con la sintaxis LINQ de MongoDB .Net Driver, convierte la consulta como BsonDocument :
var subfilter = new BsonDocument("$expr", new BsonDocument("$gte", new BsonArray { new BsonDocument("$toDate", "$EnrollmentDate"), date } ) ); filter &= subfilter;