我是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,而不是地名。
答案 0 :(得分:2)
您无法在MongoDB中使用联接。
惯用解决方案是从您的地方集合中检索place_ids
的所有place_name
,然后使用place_ids
在您的人物集合中进行查询。
另一种选择是保留places
people
集合中的people
(这对我来说比places
集合中的{{1}}更有意义,但当然,这取决于在你的域名上)。但是,您必须考虑到,如果只有一个地方发生变化,您必须更改共享特定地点的所有人员文档。如果人和地点在不同的集合中,则不会发生这种情况,因此取决于我们是否有静态数据,如果我们想要优化搜索或更新,则取决于。