Започвайки с 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 те все още не ги използват, така че имайте предвид, ако планирате да ги използвате масово (ние бяхме и трябваше да преработим всичко след това).