sql >> データベース >  >> NoSQL >> MongoDB

MongoDB + C#ドライバー+要素の配列をクエリします。各配列要素には、クエリを実行するサブドキュメントが含まれています。

    代わりにこれを試してください

    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
    



    1. 再挿入せずにPyMongoのMongoDBドキュメント配列にアイテムを追加します

    2. MongoDBAggregationFramework-動的フィールド名の変更

    3. mongoengine-EmbeddedDocumentFieldのListFieldに対するクエリ

    4. Redis sub/pubおよびphp/nodejs