亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

更新電影分類問題

老師您好:

????我在update movie 的分類時出現了問題,update改寫了movie的分類。

????完成后movie的category屬性得到了更新,但是category里面movies仍是舊的,請問是哪里出了問題?

????

exports.update=function(req,res){

var id =req.params.id

if(id){

Movie.findById(id,function(err,movie){

Category.find({},function(err,categories){

res.render('admin',{

title:'后臺更新頁',

movie:movie,

categories:categories

})

})

})

}

}



正在回答

4 回答

Fts 童鞋的思路是很nice的,簡單粗暴,但是真正的問題并不是打開首頁性能會差一點,而是這樣做會導致數據庫紊亂,categories表中的數據和movies表中的數據不能一一對應

0 回復 有任何疑惑可以回復我~

@Fts你這里不用遍歷category中的數組,直接pop(id),可以嗎?pop不是直接吧最后一個元素pop出去嗎?

0 回復 有任何疑惑可以回復我~
#1

慕粉3924594

回錯貼了。。。
2016-09-19 回復 有任何疑惑可以回復我~
//index
exports.index?=?function?(req,?res)?{
????Category.find({},?function?(err,?categories)?{
????????if?(err)?{
????????????console.log(err)
????????}

????????var?map?=?{}
????????for?(i?in?categories)?{
????????????map[categories[i]._id]?=?i
????????????categories[i].movies=[]
????????}
????????
????????Movie.find({},?function?(err,?movies)?{
????????????for?(i?in?movies)?{
????????????????categories[map[movies[i].category]].movies.push(movies[i])
????????????}
????????????res.render('index',?{
????????????????title:?'',
????????????????categories:?categories
????????????})
????????})
????})
}

在index中可以這樣寫,這樣就可以把category中的movies字段刪掉,保存電影的時候也不需要修改category表,聲明map是為了減少遍歷次數,我這樣的寫法,只需要將categories和movies各遍歷一遍即可。這樣寫的缺點就是打開首頁的性能會差一點,優點是更新和刪除電影的時候不需要對category表進行任何操作(尤其是更新電影,非常麻煩)

1 回復 有任何疑惑可以回復我~

問題并不出在update函數里面.而在save函數里面,因為修改已存在movie的category屬性時,你并沒有在新的分類中添加這部電影。同時也存在一個問題,你沒有從原來的分類中刪除這部電影,這導致這部電影依舊存在原來的分類中。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
node建站攻略(二期)——網站升級
  • 參與學習       51926    人
  • 解答問題       423    個

幫助你深入前后端開發留下的迷惑,為進一步自學打下基礎

進入課程

更新電影分類問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號