使用node express框架访问mongoDB中的子文档ID

时间:2016-08-25 15:36:37

标签: node.js mongodb express mongoose

我正在尝试使用node.js访问mongoDB中的子文档ID,但是从语句中获取null输出: review = location.reviews.id(req.params.reviewid);

此外,结果将在控制台中打印出来,但在浏览器中,我收到一条错误消息,指出" reviewId not found"

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

1 个答案:

答案 0 :(得分:0)

MongoDB提供$elemMatch来搜索子文档。你可以尝试

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

在mongo shell中。我不确定猫鼬但应该遵循

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

请查看MongoDB $elemMatchmongoose elemMatch功能