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

ネストされたドキュメントにmongoを使用してReduceをマップする

    Mongo map-reduceの例は、次の場所にあります: http://docs。 mongodb.org/manual/tutorial/map-reduce-examples/

    一意のcountry_id、city_id、およびregion_idタプルごとのドキュメントの数は簡単です:

    > function m() { 
        for(var i in this.cities) {     
             emit({country_id:this.country_id, 
                   city_id:this.cities[i].city_id,
                   region_id:this.regions.region_id}, 
                  1); 
        } }
    
    
    
    > function r(id,docs) {
          return Array.sum(docs);
    }
    > db.loc.mapReduce(m,r,{out:"map_reduce_out"})
    {
        "result" : "map_reduce_out",
        "timeMillis" : 5,
        "counts" : {
            "input" : 1,
            "emit" : 6,
            "reduce" : 0,
            "output" : 6
        },
        "ok" : 1,
    }
    > db.map_reduce_out.find()
    { "_id" : { "country_id" : 328, "city_id" : 817, "region_id" : 796 }, "value" : 1 }
    { "_id" : { "country_id" : 328, "city_id" : 18851, "region_id" : 796 }, "value" : 1 }
    { "_id" : { "country_id" : 328, "city_id" : 19398, "region_id" : 796 }, "value" : 1 }
    { "_id" : { "country_id" : 328, "city_id" : 31022, "region_id" : 796 }, "value" : 1 }
    { "_id" : { "country_id" : 328, "city_id" : 31101, "region_id" : 796 }, "value" : 1 }
    { "_id" : { "country_id" : 328, "city_id" : 31102, "region_id" : 796 }, "value" : 1 }
    


    1. mongodb不可能(?)E11000重複キーエラーアップサーティング時の重複キー

    2. Mongodbの集計-並べ替えにより、クエリが非常に遅くなります

    3. Mongooseスキーマで配列サイズの制限を設定する方法

    4. ネストされた配列で$unwindを使用した結果?