【发布时间】:2020-04-06 14:30:21
【问题描述】:
所以我有两个不同的集合,一个是 users,第二个是 product,我想按名称字段搜索产品,它应该提供所有数据users 集合中的用户详细信息。
代码 sn-p:
app.get('/api/searchProduct/:name', function(request, response) {
search = request.params.name;
product.aggregate([
{ "$project": { "supplierID": { "$toObjectId": "$supplierID" } } },
{ $lookup: {
"localField": "supplierID",
"from": "users",
"foreignField": "_id",
"as": "userDetails"
}},
], function(error, data) {
if(error) {
return response.send(error);
} else {
response.status(200).json({
status: 'success',
data: data,
})
console.log(JSON.stringify(data));
}
})
})
实际 JSON 结果:
{
"status": "success",
"data": [
{
"_id": "5e89b936e20452a419ccbcad",
"supplierID": "5e89b916e20452a419ccbcac",
"userDetails": [
]
},
{
"_id": "5e89bc5ee20452a419ccbcb0",
"supplierID": "5e89bc48e20452a419ccbcae",
"userDetails": [
{
"_id": "5e89bc48e20452a419ccbcae",
"timestamp": "2020-04-05T10:37:09.582Z",
"name": "Mohamma Junaid Raza",
"email": "junaidraza10896@gmail.com",
"password": "Iamjunaidr@10896",
"contact": "",
"userType": "",
"profilePhoto": "",
"__v": 0
}
]
},
{
"_id": "5e89c12bf312e7a5cdfe2e9e",
"supplierID": "5e89bc48e20452a419ccbcae",
"userDetails": [
{
"_id": "5e89bc48e20452a419ccbcae",
"timestamp": "2020-04-05T10:37:09.582Z",
"name": "Mohamma Junaid Raza",
"email": "junaidraza10896@gmail.com",
"password": "Iamjunaidr@10896",
"contact": "",
"userType": "",
"profilePhoto": "",
"__v": 0
}
]
},
]
}
我想要产品的完整详细信息(字段),并在产品数据下方显示的名称字段上进行搜索查询:
【问题讨论】:
标签: node.js mongodb mongodb-query aggregation-framework