代わりにこれを試してください
Query.ElemMatch("Children", Query.And(Query.EQ("StatusId",1), Query.EQ("Active",true),Query.LT("SubChild.ExpiresOn",DateTime.UtcNow)));
このクエリが魔法のように機能する理由を知りたいですか?その場合(StatusId
vs StatusID
)。 JavaScriptでは大文字と小文字が区別されます。
次のような強く型付けされたLinqクエリを使用することで、この問題を解消できます。
from x in collection.AsQueryable()
where x.Children.Any(child =>
child.StatusId == 1
&& child.Active
&& child.SubChild.ExpiresOn < DateTime.UtcNow)
select x