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

Въпрос за агрегиране на MongoDB Map/Reduce Array

  1. „Разбиването“ идва от вашия код:параметърът за стойностите на вашата функция за намаляване може да съдържа или {time:<timestamp>,value:<value>} излъчван от вашата функция за карта, или {time:[<timestamps>],value:[<values]} върнат от предишно повикване към вашата функция за намаляване.

  2. Не знам дали ще се случи на практика, но може да се случи на теория.

  3. Просто накарайте вашата функция за карта да излъчва същия вид обекти, които връща вашата функция за намаляване, т.е. emit(<id>, {time: [ts], value: [P[1]]}) и съответно променете функцията си за намаляване, т.е. Array.push.apply(result.time, V.time) и подобно за result.value .

    Всъщност не разбирам защо не използвате масив от двойки време/стойност, вместо чифт масиви, т.е. emit(<id>, { pairs: [ {time: ts, value: P[1] ] }) или emit(<id>, { pairs: [ [ts, P[1]] ] }) във функцията map и Array.push.apply(result.pairs, V.pairs) във функцията за намаляване. По този начин дори няма да имате нужда от функцията за финализиране (освен може би да „разопаковате“ масива от двойки свойство:тъй като функцията за намаляване не може да върне масив, трябва да го обвиете по този начин в обект)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Инсталиране на play framework mongodb morphia module

  2. Мониторинг на база данни без агент с ClusterControl

  3. Механизмът за удостоверяване SCRAM-SHA-1 не се поддържа

  4. Как да използвам $slice a $filter резултат в MongoDB?

  5. Как да сортирате mongodb с pymongo