sql >> Database teknologi >  >> NoSQL >> MongoDB

Fik duplikerede data, når du abonnerer flere gange

Problemet er, at du bruger et tilfældigt id hver gang i opkaldet til added så kunden tror altid, at alle dokumenter er unikke. Du skal udtænke en konsistent id-strenggenerator. Brug af et svar på dette spørgsmål , kunne du forestille dig at bygge et sæt funktioner som disse:

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å hvis du ville have et unikt dokument for hver kombination af code og hour du kunne gøre dette:

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



  1. Sådan sletter du dokumenter returneret af en aggregeringsforespørgsel i mongodb

  2. MongoDB (Java) - Hvordan kører man forespørgsel gemt i javascript-fil?

  3. Forøg matrixstruktur i MongoDb

  4. 10 spørgsmål at stille (og besvare), når du hoster MongoDB på AWS