sql >> Databáze >  >> NoSQL >> Redis

Jak získat DIFF na seřazené sadě

Poznámka:Předpokládám, že jste měli na mysli sadd disabled two

Jak jste zjistili, SDIFF nepracuje na seřazených množinách - to proto, že definování rozdílu mezi seřazenými množinami není triviální.

Co byste mohli udělat, je nejprve vytvořit dočasnou sadu pomocí ZUNIONSTORE a nastavit skóre průsečíku na 0. Poté zadejte rozsah vylučující 0, např.:

127.0.0.1:6379> ZADD all 1 one 2 two 3 three
(integer) 3
127.0.0.1:6379> SADD disabled two
(integer) 1
127.0.0.1:6379> ZUNIONSTORE tmp 2 all disabled WEIGHTS 1 0 AGGREGATE MIN
(integer) 3
127.0.0.1:6379> ZREVRANGEBYSCORE tmp +inf 1 WITHSCORES
1) "three"
2) "3"
3) "one"
4) "1"



  1. MongoDB $last Aggregation Pipeline Operator

  2. Indexování Mongoose v produkčním kódu

  3. Přehled správy uživatelů MongoDB

  4. Mongodb třídí vnitřní pole