mongodb - Mongo Query 检索好友
问题描述
我正在检查我的_id是否与requestor_id或receiver_id匹配,并且在聚合后状态为1。我从中得到了三个对象,我只想得到一个。下面是我的代码。
//myID
var user_id = req.body.user_id;
dbo.collection('User_List').aggregate([
{$lookup:{
from:'Friendship',
pipeline:[{
$match:{
$expr:{
$and:[{
$or:[
{$eq:['$requester_id',user_id]},
{$eq:['$recipient_id',user_id]}
]},
{$eq:['$status',1]}
]}
}
}
],
as:'friends'}},
{$unwind:'$friends' }]).toArray(function(err,data){
if(err) console.log(err);
console.log((data));
db.close();
});
如果有更好的模式来组织我的收藏,也请告诉我。预先感谢您的任何评论。
解决方案
您必须使用$match
, 来获得特定用户的朋友。
//myID
var user_id = req.body.user_id;
dbo.collection('User_List').aggregate([
{$match: { '_id': ObjectId(user_id)}},
{$lookup:{
from:'Friendship',
pipeline:[{
$match:{
$expr:{
$and:[{
$or:[
{$eq:['$requester_id',user_id]},
{$eq:['$recipient_id',user_id]}
]},
{$eq:['$status',1]}
]}
}
}
],
as:'friends'}},
{$unwind:'$friends' }]).toArray(function(err,data){
if(err) console.log(err);
console.log((data));
db.close();
});
推荐阅读
- flutter - 如何在颤动中画出这个
- wordpress - Mailpoet 和删除不需要的 WordPress 用户?
- css - 如何将 rel=preload 属性包含在 css 文件中的字体文件中
- mongodb - 如何编写聚合管道以获取合并文档作为文档插入 MongoDB 上的新字段?
- python - 调整图像大小 Django
- python - 在 TripAdvisor 用户个人资料中抓取评论时单击“显示更多”按钮
- sql - 如何获取 PostgreSQL 中的两个平均值之间的差异,平均值在列上,最终表按两列分组?
- go - 如何获得控制终端跨平台
- javascript - 无法让我的 JS 函数在多个产品上执行
- npm - onchange 的问题,它无法识别 scss 文件的更改