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

Карта/намаляване и сортиране на вложен документ

MapReduce е операция, която преминава през куп документи и извършва операция. Не съм напълно сигурен, че е точно това, което искате, но е възможно да публикувате по-проста форма на истинския си проблем. Във всеки случай следният код работи, като излъчва 3 пъти за вашия единичен документ, използвайки _id на документа като ключ към функцията за намаляване.

doc = {_id : 16, days : { 1 : 123, 2 : 129, 3 : 140, 4 : 56, 5 : 57, 6 : 69, 7 : 80 }};
db.so.insert(doc);

map = function() {
  emit(this._id, this.days["1"]);
  emit(this._id, this.days["3"]); 
  emit(this._id, this.days["7"]); 
}

reduce = function (k, vals) {
  var sum = 0;
  vals.forEach(function (v) {sum += v;});
  return sum;
}

res = db.so.mapReduce(map, reduce, {out : {inline : 1}});
res.find();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:вземете само листа от дърво

  2. Как да клонирате колекция от една MongoDB в друга на същия сървър

  3. Генерираният UID от Mongodb съдържа думата bad

  4. Подготовка на MongoDB сървър за производство

  5. Грешка:queryTxt ETIMEOUT при свързване към MongoDb Atlas с помощта на mongoose