sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB + C# driver + forespørgselsarray af elementer, hvor hvert arrayelement indeholder underdokument til forespørgsel på

Prøv dette i stedet

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

Undrer du dig over, hvorfor denne forespørgsel på magisk vis virker? Det er tilfældet (StatusId vs StatusID ). JavaScript skelner mellem store og små bogstaver.

Du kan eliminere dette problem ved at bruge stærkt indtastede Linq-forespørgsler, såsom:

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



  1. Sådan annullerer du et job i kø i Laravel eller Redis

  2. Hvordan konverteres en streng til ObjectId i nodejs mongodb native driver?

  3. Abonner på Meteor.Users Collection

  4. Adgang til variabel ekstern redis pipelining-funktion på Laravel