MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapytanie o wyliczenie bitowe (flagi) przy użyciu oficjalnego sterownika C# MongoDB

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ć).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Obsługuj utracone połączenie z mongo db z nodejs

  2. Wstaw nowy obiekt do pola tablicy dokumentu podrzędnego w manguście

  3. łączenie się z lokalnym mongodb z kontenera docker

  4. Mongoose — przy użyciu funkcji Populate na tablicy ObjectId

  5. Odwzoruj „tablicę obiektów” na prostą tablicę kluczowych wartości