sql >> Databasteknik >  >> NoSQL >> MongoDB

Fick duplicerad data när du prenumererade flera gånger

Problemet är att du använder ett slumpmässigt ID varje gång i anropet till added så kunden tycker alltid att alla dokument är unika. Du måste skapa en konsekvent id-stränggenerator. Använda ett svar på denna fråga , kan du tänka dig att bygga en uppsättning funktioner som dessa:

hashCode = function (s) {
  return s.split('').reduce(function (a, b) {
    a = ((a << 5) - a) + b.charCodeAt(0);return a & a;
  }, 0);
};

objectToHash = function (obj) {
  return String(hashCode(JSON.stringify(obj)));
};

Så om du ville ha ett unikt dokument för varje kombination av code och hour du kan göra så här:

var id = objectToHash(r._id);
this.added('totalNumber', id, {...});



  1. MongoDB:Unikt index på arrayelementets egenskap

  2. Spring java MongoDB @Query annotering för beställningens topp eller första poster

  3. Infoga en lista i en annan lista i Redis

  4. Hur får man data från MongoDb med mongoose?