Począwszy od MongoDB v 3.2 możesz użyć bitsAllSet lub bitsAnySet w zależności od tego, czego szukasz.
Tak więc, ze sterownikiem 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));
Uwaga :istnieje otwarty problem aby używać indeksów w operacjach bitowych. W MongoDB 4.2 nadal ich nie używają, więc bądź świadomy, jeśli planujesz używać ich na masową skalę (byliśmy i musieliśmy wszystko później przerobić).