findById時mongodb不能用字符串來索引?
>?db.movies.findOne({_id:?ObjectId("55cd57c452102b627ee88522")}) { ????????"_id"?:?ObjectId("55cd57c452102b627ee88522"), ????????"doctor"?:?"和塞", ????????"title"?:?"機械戰警", ????????"country"?:?"美國", ????????"language"?:?"和塞", ????????"poster"?:?"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5", ????????"summary"?:?"《機械戰警》是由何塞·帕迪里亞執導,喬爾·金納曼、塞繆爾·杰克遜、加里·奧德曼等主演的一部科幻電影,改編自1987年保羅·范霍文執導的同名電影。影片于2014年2月12日在美國上映,2014年2月28日在中國大陸上映。影片的故事背景與原版基本相同,故事設定在2028年的底特律,男主角亞歷克斯·墨菲是一名正直的警察,被壞人安裝在車上的炸彈炸成重傷,為了救他,OmniCorp公司將他改造成了生化機器人“機器戰警”,代表著美國司法的未來。", ????????"flash"?:?"http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf", ????????"meta"?:?{ ????????????????"updateAt"?:?ISODate("2015-08-14T02:51:48.784Z"), ????????????????"createAt"?:?ISODate("2015-08-14T02:51:48.784Z") ????????}, ????????"__v"?:?0 } >?db.movies.findOne({_id:?"55cd57c452102b627ee88522"}) null
我改了下app.js
app.get('/movie/:id',?function(req,?res)?{ ????var?id?=?req.params.id ????//?我不知道為什么,不能用字符串搜索而必須用ObjectId ????//?所以我還是用一種奇葩的方式搞定了。。。 ????Movie.findById(mongoose.Schema.ObjectId(id),?function(err,?movie){ ????????res.render('detail',?{ ????????????title:?'imooc?'?+?movie.title, ????????????movie:?movie ????????}) ????}) })
希望有幫助吧
2015-08-14
如果出現null上調用方法的,很可能是這原因吧