sql >> Databáze >  >> NoSQL >> MongoDB

Při vícenásobném přihlášení k odběru máte duplicitní data

Problém je v tom, že při každém volání added používáte náhodné ID takže klient si vždy myslí, že všechny dokumenty jsou jedinečné. Musíte navrhnout konzistentní generátor id řetězců. Pomocí odpovědi na tuto otázku , můžete si představit vytvoření sady funkcí, jako jsou tyto:

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

Pokud jste tedy chtěli jedinečný dokument pro každou kombinaci code a hour můžete udělat toto:

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



  1. Nelze použít Nested VariableOperators.mapItemsOf v Spring Data MongoDb

  2. Jak spočítám více klíčů ve stejném dotazu $group agregace MongoDB?

  3. Přepínač MongoDB $

  4. .get() vyžaduje funkce zpětného volání, ale má [object Undefined]