MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB + pilote C # + tableau de requête d'éléments où chaque élément du tableau contient un sous-document sur lequel interroger

Essayez plutôt ceci

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

Vous vous demandez pourquoi cette requête fonctionne comme par magie ? C'est le cas (StatusId vs StatusID ). JavaScript est sensible à la casse.

Vous pouvez éliminer ce problème en utilisant des requêtes Linq fortement typées, comme :

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