走同样的路,发现不同的人生
求人不如求己麼? 終於解決了 貼出來,供大家參考
mongodb.open(function(err, db) { if (err) { return callback(err); } db.collection('users', function (err, collection) { if (err) { mongodb.close(); callback(err); } db.collection('posts', function (err, collectionofposts) { if (err) { mongodb.close(); callback(err); } collection.update({"name": name}, {$set: {"head": head}}, function(err) { if (err) { return callback(err); } collectionofposts.update({"name": name}, {$set: {"head": head}}, {multi: true}, function(err) { if(err) { return callback(err); } collectionofposts.find().forEach( function(doc) { collectionofposts.update({_id: doc._id, "comments.name": name}, {$set: {"comments.$.head": head}}, {multi: true}); }, function(err) { if(err) { return callback(err); } mongodb.close(); callback(null); }); }); }); }); }); }); }
你的意思是如果使用者修改了頭像,需要把post裡面這個使用者的頭像也改了
你上面的模式感覺不適合這種場景;不如post裡面中保存用戶id,comments裡面也保存用戶的id,這樣就不用一個用戶的信息改了,需要在多個地方也修改相應的信息,當然這種方式需要你在例如查詢comments資訊的時候,需要再取得使用者的信息,需要你自己取捨了
更新的話,
db.posts.update({userId:'xxxxxx'},{$set:{"head" : "/images/portrait-1490968786371.jpg"}})//類似這樣子的
mongodb不是關係型資料庫,沒辦法用一條SQL語句搞定,只能用巢狀查詢來做,對用慣了關係型資料庫的人來說,簡直無法直視。還有看到那一堆 if (err) { mongodb.close(); callback(err);}更要抓狂
求人不如求己麼? 終於解決了 貼出來,供大家參考
你的意思是如果使用者修改了頭像,需要把post裡面這個使用者的頭像也改了
你上面的模式感覺不適合這種場景;不如post裡面中保存用戶id,comments裡面也保存用戶的id,這樣就不用一個用戶的信息改了,需要在多個地方也修改相應的信息,當然這種方式需要你在例如查詢comments資訊的時候,需要再取得使用者的信息,需要你自己取捨了
更新的話,
db.posts.update({userId:'xxxxxx'},{$set:{"head" : "/images/portrait-1490968786371.jpg"}})//類似這樣子的
mongodb不是關係型資料庫,沒辦法用一條SQL語句搞定,只能用巢狀查詢來做,對用慣了關係型資料庫的人來說,簡直無法直視。還有看到那一堆 if (err) { mongodb.close(); callback(err);}更要抓狂