MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Получих дублирани данни при многократно абониране

Проблемът е, че използвате случаен идентификатор всеки път в извикването на added така че клиентът винаги смята, че всички документи са уникални. Трябва да измислите последователен id генератор на низове. Използване на отговор на този въпрос , можете да си представите изграждането на набор от функции като тези:

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

Така че, ако искате уникален документ за всяка комбинация от code и hour можете да направите това:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nodejs mongodb динамично име на колекция

  2. MongoDB $ifNull

  3. как да използвам MongoDB за съхраняване на ejabberd съобщения?

  4. Изпълнете mongodb shell скрипт чрез C# драйвер

  5. Премахнете полето, намерено във всеки масив на mongodb