0

私は2つのコレクションを持っています。" "は次のようpeopleに""と接続されています:location

location_id = ObjectId()

db.people.insert(
{
  _id : ObjectId(),
  name : "Nick",
  location : location_id
});

db.locations.insert(
{
 _id : location_id,
  city : "Cape Town"
});

locationsそれぞれの人数のヒストグラムを作成したいと思いますcitygroupしかし、それらは異なるコレクションであるため、Mongoコマンドではそれを行うことができないようです。map / reduceでそれを行う正しい方法はありますか?

4

1 に答える 1

0

map-reduceもここでは役に立ちません。また、単一のコレクションで動作します。

ここでリレーショナルデザインのスキルを応用しようとしているようです。そうしないでください。MongoDBには新しいアプローチが必要です。

もし私があなたなら、おそらく場所を人々のコレクションに非正規化するでしょう。

db.people.insert(
{
  _id : ObjectId(),
  name : "Nick",
  location : {city: "Cape Town"}
});

このように、すべてが同じコレクションにあるため、map-reduceを使用してこのデータを分析することができます。

于 2012-08-08T12:01:33.507 に答える