2017-12-02 10 views
0

私は、州ごとのディーラー数を数えたいと思っています。私が抱えている問題は、私がCity/State/Zipを一列に並べていることです。ですから、私はこの状態を抽象化する方法が必要です。マルチフィールド列のモンゴ抽象フィールド

これは私の結果の1つの例です。

"_id" : ObjectId("5a22c8e562c2e489c5df710a"), 
     "2016rank" : 22, 
     "Dealershipgroupname" : "West-Herr Automotive Group Inc.", 
     "Address" : "3552 Southwestern Blvd.", 
     "City/State/Zip" : "Orchard Park, NY 14127", 
     "Phone" : "(716) 926-7052", 
     "Companywebsite" : "www.westherr.com", 
     "Topexecutive" : "Scott Bieler", 
     "Topexecutivetitle" : "president", 
     "Totalnewretailunits" : "29,486", 
     "Totalusedunits" : "20,525", 
     "Totalfleetunits" : 302, 
     "Totalwholesaleunits" : "23,694", 
     "Total_units" : "74,007", 
     "Total_number_of _dealerships" : 25, 
     "Grouprevenuealldepartments*" : "$1,805,200,100", 
     "2015rank" : 20 

これは私が書いた集約グループコードですが、私はStateのみを使用します。

db.car.aggregate([ 
    {"$group" : {_id:"$City/State/Zip", count:{$sum:1}}} 
]) 

都市/州/郵便番号から状態を抽象化して集計するとどうなりますか?

答えて

0

これを試すことができます。

db.car.aggregate([ 
    { $project : { city_state : { $split: ["$City/State/Zip", " "] } } }, 
    { $unwind : "$city_state" }, 
    { $match : { city_state : /[A-Z]{2}/ } }, 
    { $group : {_id:{ "state" : "$city_state" }, count:{$sum:1}}} 
])