【发布时间】:2016-09-20 04:31:59
【问题描述】:
我的请求集合,
{
"_id" : ObjectId("57e0b8cd5eeba5140b270ca8"),
"sent_id" : "57dfcdc21ad7cf658860926d",
"recieved_id" : "57dfcddf1ad7cf658860926e",
"status" : 1
}
我的个人资料集
{
"_id" : ObjectId("57dfcddf1ad7cf658860926e"),
"firstname" : "John",
"lastname" : "David",
"profilename" : "John David",
"email" : "john@gmail.com"
}
在这里我想用 sent_id(collection) = _id(profile) 加入收藏,我尝试了下面的代码,
exports.getrequestsdetails = function (req, res) {
var params = req.params;console.log(params)
var record = db.collection('requests');
var item = {"sent_id": params.id,"status":1};
record.aggregate([
{
$lookup:
{
from: "profile",
localField: "sent_id",
foreignField: "_id",
as: "profilename"
}
}
]).toArray((err, result) => {
if (err){ return
}
if(result){
response = {status:'success',data:result};
} else{
response = {status:'fail',data:[]};
}
res.send(response);
});
};
这是我无法看到集合已加入的结果,
{
"status": "success",
"data": [
{
"_id": "57dfeb279559c37854adb92f",
"profilename": []
},
{
"_id": "57e0b8cd5eeba5140b270ca8",
"sent_id": "57dfcdc21ad7cf658860926d",
"recieved_id": "57dfcddf1ad7cf658860926e",
"status": 1,
"profilename": []
}
]
}
使用上面的代码我遇到了 2 个问题,
1)我在比较 sent_id 和 _id ,这里 _id 是一个对象类型,那么我该如何比较它们。
2)我想将发送的 id 作为参数传递,我该怎么做?
任何人都可以建议我帮助,因为我是 node 和 mongo 的新手。谢谢。
【问题讨论】: