sql >> Database >  >> NoSQL >> MongoDB

Kaart/verkleinen en sorteren genest document

MapReduce is een bewerking die een reeks documenten doorloopt en een bewerking uitvoert. Ik weet niet helemaal zeker of het precies is wat je wilt, maar mogelijk post je een eenvoudigere vorm van je echte probleem. In ieder geval werkt de volgende code door 3 keer uit te zenden voor uw enkel document, waarbij u de _id van het document gebruikt als de sleutel tot de reduceerfunctie.

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. Asp.net core web-api met mongodb 500-fout

  2. Node.js &Redis / hget synchroniseren

  3. 3 manieren om een ​​index te verbergen voor het queryplan in MongoDB

  4. Php7 Redis Client op Alpine OS