拍下这张图
用户A已经有某些朋友,他发送了一个探索请求,要求db查询与他的计算机科学课程相同的用户
查询返回一系列用户,他们提供与他相同的课程。
我的目标
我正在尝试使用users.forEach()
方法来检查返回的用户是否已经是他的朋友,然后针对每个用户检查该用户是否已存在于用户A的mongo中”文档”,我将在问题后放置用户A的模型架构。
想出一种比使用forEach方法更有效的方法,因为我认为它将来可能会导致可伸缩性问题。
相关用户架构
const userSchema = new mongoose.Schema({
friends: [{
Name: String,
userTag: String,
email: String,
userID: String,
profilePicturePath: String
}]
});
路线代码
User.find({
'userProfile.Course': req.header('x-user-course')
})
.then((users) => {
let mapExploreBox = [];
users.forEach((user) => {
User.find({
email: req.params.email
})
.then((ClientUser) => {
ClientUser.forEach(friend => {
if (friend.email != user.email) {
console.log(true);
mapExploreBox.push({
Name: user.Name,
userProfile: user.userProfile
});
}
});
});
return mapExploreBox;
}).catch((err) => {
console.log(err);
});
})
.catch((err) => {
res.send('Oops something went wrong').status(400);
console.log(err);
});