mongodb连表查询

二胖手
  • 740

mongo如何连表查询,比如有一个users 还有一个blogs 输出 blogs内容和作者信息

评论
阅读 10.1k
5 个回答
✓ 已被采纳

mongodb不支持关系数据库的join(连接)查询

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});
})
)

blogs可以直接嵌入作者的信息,作为blogs的子文档。

撰写回答

登录后参与交流、获取后续更新提醒

社区力量为主,同时有 MongoDB 官方技术人员支持的旨在推广 MongoDB 的普及和最佳使用方案的社区。

宣传栏