mongo如何連表查詢,例如有一個users 還有一個blogs 輸出 blogs內容和作者資訊
mongodb不支持关系数据库的join(連接)查詢
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}); } )
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的子文檔。
mongoose提供了populate方法來實現join。不過我也是沒看懂~http://www.nodeclass.com/api/mongoose.html#guide_populate
一個比較簡單但是覺得笨拙的方法就是 像上面的答案一樣,先查一張表,然後對結果forEach再查詢另一張表。
mongodb
不支持关系数据库的join
(連接)查詢eg:
users有一個屬性blogid 與 blogs 的 id 是 一對一的話:
eg:
users有一個屬性blogid 與 blogs 的 id 是 一對n的話:
blogs可以直接嵌入作者的信息,作為blogs的子文檔。
mongoose提供了populate方法來實現join。不過我也是沒看懂~
http://www.nodeclass.com/api/mongoose.html#guide_populate
一個比較簡單但是覺得笨拙的方法就是 像上面的答案一樣,先查一張表,然後對結果forEach再查詢另一張表。