sql >> データベース >  >> NoSQL >> MongoDB

ネストされたドキュメントのマッピング/縮小と並べ替え

    MapReduceは、一連のドキュメントをループして操作を実行する操作です。それがあなたが望むものであるかどうかは完全にはわかりませんが、おそらくあなたはあなたの本当の問題のより単純な形を投稿しています。いずれの場合も、次のコードは、ドキュメントの_idをreduce関数のキーとして使用して、単一のドキュメントに対して3回発行することで機能します。

    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. 実際のMongoDBに対するPythonEveRESTfulAPIのテストの作成

    2. Hibernate ogmとスプリングブートを使用しようとすると、コンソールが表示する名前付きストラテジークラスエラーをインスタンス化できませんでした

    3. Mongodbエラー:子プロセスが失敗し、エラー番号51で終了しました

    4. 継承に関する情報をmongodbに保存するのに最適な方法は?