MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB + driver C# + array de consulta de elementos em que cada elemento do array contém subdocumento para consulta


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

Quer saber por que essa consulta magicamente funciona? É o caso (StatusId vs StatusID ). JavaScript diferencia maiúsculas de minúsculas.

Você pode eliminar esse problema usando consultas Linq fortemente tipadas, como:
from x in collection.AsQueryable()
where x.Children.Any(child => 
    child.StatusId == 1 
    && child.Active 
    && child.SubChild.ExpiresOn < DateTime.UtcNow)
select x