0

我是 MongoDB 的新手,我想知道是否可以进行如下的链式查询(有点像连接):

db.places.insert({
"_id": original_id
"place_name": "Broadway Center"
"url": "bc.example.net"})

db.people.insert({
"name": "Erin"
"places_id": original_id
"url":  "bc.example.net/Erin"})

所以给定一个地名字符串,我想选择与那个地方相关的人。但是 people 集合仅引用地点 id,而不是地点名称。

4

1 回答 1

2

您不能在 MongoDB 中使用连接。

惯用的解决方案是从您的地点集合中检索所有place_ids内容,place_name然后place_ids在您的人员集合中使用查询。

例如,另一种选择是保留placespeople集合中(这对我来说比peopleplaces集合中更有意义,但当然,这取决于您的域)。但是你必须考虑到,如果只有一个地方发生了变化,你必须改变共享一个特定地方的所有人员文档。如果人和地点位于不同的集合中,则不会发生这种情况,因此这取决于我们是否有静态数据以及是否要优化搜索或更新。

于 2013-06-06T20:23:01.993 回答