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

Hai dati duplicati quando ti iscrivi più volte

Il problema è che stai usando un ID casuale ogni volta nella chiamata a added quindi il cliente pensa sempre che tutti i documenti siano unici. Devi escogitare un coerente generatore di stringhe id. Utilizzando una risposta a questa domanda , potresti immaginare di creare un insieme di funzioni come queste:

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)));
};

Quindi, se volessi un documento univoco per ogni combinazione di code e hour potresti farlo:

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