Mongodb链式查询

时间:2013-06-06 20:05:29

标签: mongodb

我是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"})

因此,给定一个地名字符串,我想选择与该地点相关联的人。 但是人物集合只引用地点ID,而不是地名。

1 个答案:

答案 0 :(得分:2)

您无法在MongoDB中使用联接。

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

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