sql >> Base de Datos >  >> NoSQL >> MongoDB

Obtuve datos duplicados cuando me suscribí varias veces

El problema es que está utilizando una identificación aleatoria cada vez en la llamada a added por lo que el cliente siempre piensa que todos los documentos son únicos. Necesita diseñar un coherente generador de cadena de identificación. Usando una respuesta a esta pregunta , podrías imaginarte construyendo un conjunto de funciones como estas:

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

Entonces, si desea un documento único para cada combinación de code y hour podrías hacer esto:

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