mongo如何连表查询,比如有一个users 还有一个blogs 输出 blogs内容和作者信息
eg:
db.users.insert({name:'tmac',blogid:1});
db.blog.insert({id:1,detail:'tmacs blog'});
users有一个属性blogid 与 blogs 的 id 是 一对一的话:
db.users.find().forEach(function(x){
var blogs_record = db.blogs.findOne({id:x.blogid});
if(blogs_record != null){
db.temp.insert({name:x.name,detail:blogs_record.detail});
}
)
eg:
db.users.insert({name:'tmac',blogid:1});
db.blog.insert({id:1,detail:'tmacs blog1'});
db.blog.insert({id:1,detail:'tmacs blog2'});
users有一个属性blogid 与 blogs 的 id 是 一对n的话:
db.users.find().forEach(function(x){
db.blogs.findOne({id:x.blogid}).forEach(function(y){
db.temp.insert({name:x.name,y.detail});
})
)
mongoose提供了populate方法来实现join。不过我也是没看懂~
http://www.nodeclass.com/api/mongoose.html#guide_populate
一个比较简单但是觉得笨拙的方法就是 像上面的答案一样,先查一张表,然后对结果forEach再查询另一张表。
1 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.3k 阅读
1 回答643 阅读
617 阅读
mongodb
不支持关系数据库的join
(连接)查询