Bắt đầu với MongoDB v 3.2, bạn có thể sử dụng bitsAllSet hoặc bitsAnySet tùy thuộc vào những gì bạn đang tìm kiếm.
Vì vậy, với C # MongoDB Driver:
//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));
Lưu ý :Có một sự cố đang mở để sử dụng các chỉ mục trên các hoạt động Bitwise. Trên MongoDB 4.2, họ vẫn không sử dụng chúng, vì vậy hãy lưu ý nếu bạn định sử dụng chúng ồ ạt (chúng tôi đã và chúng tôi đã phải cấu trúc lại mọi thứ sau đó).