MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Vous avez des données en double lorsque vous vous abonnez plusieurs fois

Le problème est que vous utilisez un identifiant aléatoire à chaque fois dans l'appel à added Ainsi, le client pense toujours que tous les documents sont uniques. Vous devez concevoir une stratégie cohérente générateur de chaîne d'identification. Utiliser une réponse à cette question , vous pouvez imaginer créer un ensemble de fonctions comme celles-ci :

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

Donc, si vous vouliez un document unique pour chaque combinaison de code et hour vous pourriez faire ceci :

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