sql >> Databáze >  >> NoSQL >> MongoDB

Bitový enum (příznaky) dotaz pomocí oficiálního C# ovladače MongoDB

Počínaje MongoDB v 3.2 můžete použít bitsAllSet nebo bitsAnySet podle toho, co hledáte.

Takže s ovladačem 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));

Poznámka :Vyskytl se otevřený problém používat indexy v bitových operacích. Na MongoDB 4.2 je stále nepoužívají, takže mějte na paměti, pokud je plánujete masivně používat (my jsme byli a museli jsme poté vše přefaktorovat).



  1. MongoDB - Hlasování pro komentáře nahoru/proti hlasování s agregačním kanálem

  2. Mongoose se nemůže připojit bez internetu

  3. Jak zpracovat zpětná volání ve smyčce for (Node.JS)

  4. $in operátor mongoDB s _id v perlu