2016-08-25 69 views
0

我想使用node.js訪問mongoDB中的子文檔ID,但是從語句獲得null輸出: review = location.reviews.id(req。 params.reviewid);使用node express框架訪問mongoDB中的子文檔ID

而且,結果得到印在控制檯,但在瀏覽器中,我得到一個錯誤,指出 「reviewId找不到」

Data is getting printed in the console

This is the main code

Data is present in the database

This is the output that I am getting

+0

相反OD'location.reviews.id(req.params.reviewid);'用'location.reviews .find(function(review){return review.id === req.params.reviewid;});' – Molda

+0

@Molda它仍然給出相同的輸出 –

+0

console.log(review)的輸出是什麼; 'review = location.reviews.find(function(review){return review.id === req.params.reviewid;});' – Molda

回答

0

MongoDB提供$elemMatch在子文件內搜索。你可以試試

db.locations.find({ _id: ObjectId("Your_locations_Id"), reviews: { $elemMatch: { id: ObjectId("Your_reviews_Id") } }}) 

在蒙戈殼。我不知道貓鼬,但應努力下

Loc.find("_id": mongoose.Types.ObjectId(req.params.locationid)).elemMatch("reviews", {"id": mongoose.Types.ObjectId(req.params.reviewsid)}) 

請看看MongoDB $elemMatchmongoose elemMatch功能

相關問題