mongodb的Reference感觉是关系型数据库里join
的一种优雅实现,可以轻松实现很多复杂的关联查询。
在看了相关文档后我有些疑问,比如有如下数据
original_id = ObjectId()
db.places.insert({
"_id": original_id,
"name": "Broadway Center",
"url": "bc.example.net"
})
db.people.insert({
"name": "Erin",
"places_id": original_id,
"url": "bc.example.net/Erin"
})
people
通过places_id
这个字段和places
关联起来了。我在做查询的时候怎么样得到一个嵌入式的文档呢?如果我直接db.people.find({_id : '12312312'})
这样会得到一个嵌入式文档吗?是需要我怎么声明一下呢?
另一个是多对多查询的问题,比如SF中的问题和标签就是一个多对多的关系
db.questions.insert({
"_id": "1223123",
"title": "questions 1",
"tags": ["aaaaaaaa", "bbbbbbbb"]
})
db.tags.insert({
"_id": "aaaaaaaa",
"name": "php"
})
db.tags.insert({
"_id": "bbbbbbbb",
"name": "mongodb"
})
这种形式,获取问题questions
信息,要形成嵌入式文档该如何查询呢?