MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mapuj/zmniejszaj i sortuj zagnieżdżony dokument

MapReduce to operacja, która zapętla kilka dokumentów i wykonuje operację. Nie jestem do końca pewien, czy to jest dokładnie to, czego chcesz, ale prawdopodobnie publikujesz prostszą formę swojego prawdziwego problemu. W każdym razie poniższy kod działa, emitując 3 razy dla twojego pojedynczego dokumentu, używając _id dokumentu jako klucza do funkcji zmniejszania.

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. Jednoczesna aktualizacja elementów tablicy, które są dokumentami osadzonymi w MongoDB

  2. MongoError:użytkownik nie może wykonywać akcji

  3. Nieprawidłowa liczba z zapytania agregującego

  4. Wstaw dane w MongoDB za pomocą PHP

  5. Mongodb\BSON\Regex Php:Wykonaj podobne dopasowanie