sql >> Databasteknik >  >> NoSQL >> Redis

Få alla fält och värden för hash-nyckeln med redis i noden

Du får ett värde eftersom du åsidosätter det tidigare värdet.

client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);

Detta lägger till Id, ReqNo till Table1-hashobjektet.

client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);

Detta åsidosätter Id och ReqNo för Table1-hashobjektet. Vid det här laget har du bara två fält i hashen.

Egentligen kommer ditt problem från det faktum att du försöker mappa en relationsdatabasmodell till Redis. Du borde inte. Med Redis är det bättre att tänka i termer av datastrukturer och åtkomstvägar.

Du måste lagra ett hashobjekt per post. Till exempel:

HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...

Sedan kan du använda en uppsättning för att lagra ID:n:

SADD Table1 9324324 9324325

Slutligen för att hämta ReqNo-data som är kopplade till Tabell1-samlingen:

SORT Table1 BY NOSORT GET # GET Id:*->ReqNo

Om du också vill söka efter alla ID:n som är kopplade till ett givet ReqNo, behöver du en annan struktur för att stödja denna åtkomstväg:

SADD ReqNo:23432 9324324 9324325

Så du kan få listan över ID:n för post 23432 genom att använda:

SMEMBERS ReqNo:23432

Med andra ord, försök inte överföra en relationsmodell:skapa bara dina egna datastrukturer som stödjer dina användningsfall.




  1. Hur man skapar en konfigurationsfil för MongoDB

  2. MongoDB:Uppdatering av dokument med data från samma dokument

  3. Selleri med flera djangosajter

  4. Hur man hittar dokument som matchar flera kriterier