我有批量收集的数据,如下所示:
[
{
"_id": "58d21104a2b6940fd99db632",
"username": "58d18698669fd20ea0b81720",
"batchname": "dynamic",
"time": "21:20",
"activityname": "dance",
"eventtype": "demo",
"duration": 50,
"price": "120$",
"__v": 0,
"trainer": [
{
"trainername": "ramu",
"_id": "58d21104a2b6940fd99db633"
}
]
},
{
"_id": "58d226eb5f73f7150ffc3181",
"username": "58d18698669fd20ea0b81721",
"batchname": "spck",
"time": "21:20",
"activityname": "dance",
"eventtype": "demo",
"duration": 50,
"price": "120$",
"__v": 0,
"trainer": []
},
{
"_id": "58d22745079e481533f23bbe",
"username": "58d18698669fd20ea0b81721",
"batchname": "spctygytgyk",
"time": "21:20",
"activityname": "music",
"eventtype": "demo",
"duration": 50,
"price": "120$",
"__v": 0,
"trainer": [
{
"trainername": "siva",
"_id": "58d22745079e481533f23bbf"
}
]
}
]
因为我想检索其活动名称与url中的参数send匹配的批次的详细信息。我把代码编写为:
batchrouter.route('/activity/:activityName')
.get(Verify.verifyOrdinaryUser,function (req, res, next) {
Batch.find({"activityname":"req.params.activityName"}, function (err, batch) {
if (err) throw err;
res.json(batch);
});
});
当执行路由为localhost:3000/batch/activity/dance
时,它返回一个空数组[]
。如何修改代码,以便我想在activityname跳舞时检索批次详细信息。我是mongodb和mongoose的新手。请帮帮我。
答案 0 :(得分:5)
您将活动名称("req.params.activityName" with quotes
)作为字符串而不是实际值传递。将代码更新为以下
Batch.find({"activityname":req.params.activityName}