sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB + controlador C# + matriz de consulta de elementos donde cada elemento de la matriz contiene un subdocumento para consultar

Prueba esto en su lugar

Query.ElemMatch("Children", Query.And(Query.EQ("StatusId",1), Query.EQ("Active",true),Query.LT("SubChild.ExpiresOn",DateTime.UtcNow)));

¿Se pregunta por qué esta consulta funciona mágicamente? Es el caso (StatusId vs StatusID ). JavaScript distingue entre mayúsculas y minúsculas.

Podría eliminar este problema utilizando consultas de Linq fuertemente tipadas, como:

from x in collection.AsQueryable()
where x.Children.Any(child => 
    child.StatusId == 1 
    && child.Active 
    && child.SubChild.ExpiresOn < DateTime.UtcNow)
select x