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

MongoDBの公式C#ドライバーを使用したビット単位の列挙(フラグ)クエリ

    MongoDB v 3.2以降では、bitsAllSet を使用できます。 または bitsAnySet 何を探しているかに応じて。

    したがって、C#MongoDBドライバーを使用する場合:

    //Check single Flag as OP
    collection.Find(Builders<MyEntity>.Filter.BitsAllSet(myEntity => myEntity.Flags, (long) MyFlags.AFlag));
    
    //Check all multiple Flags
    collection.Find(Builders<MyEntity>.Filter.BitsAllSet(myEntity => myEntity.Flags, (long) MyFlags.AFlag | MyFlags.BFlag));
    
    //Check any multiple Flag
    collection.Find(Builders<MyEntity>.Filter.BitsAnySet(myEntity => myEntity.Flags, (long) MyFlags.AFlag | MyFlags.BFlag));
    

    未解決の問題 があります ビット演算でインデックスを使用します。 MongoDB 4.2では、まだそれらを使用していないため、大量に使用する予定がある場合は注意してください(以前はすべてをリファクタリングする必要がありました)。



    1. mongodbで週ごとにドキュメントでグループ化する方法

    2. ソートされたオブジェクトのセットをredisに保存するにはどうすればよいですか?

    3. mongodbの--bindip構成オプションは何をしますか?

    4. エラー:子プロセスが失敗し、エラー番号1、mongodbで終了しました