0

我有两个系列。“ 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给出每个人的人数city。但我似乎无法使用 Mongogroup命令来执行此操作,因为它们是不同的集合。使用 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 回答