【发布时间】:2018-02-05 05:14:02
【问题描述】:
我正在尝试在我的应用中构建一个朋友组件。
我对 Mongo/Mongoose 还很陌生,来自 MySQL 背景。
我在这里要做的是访问用户的个人资料,如果他们的个人资料有私人设置,然后检查该用户是否有以朋友身份访问其页面的用户。
假设我有一个用户模式
var UserSchema = new Schema({
username : String,
friends : [{ id: { type: Schema.Types.ObjectId, ref: 'User'}, status: Number }],
});
var User = mongoose.model('User', UserSchema);
User.findOne({username: 'req.params.username', 'friends.id': req.session.user.id}, function (err, user)
if(user){
user.isFriend = true;
}
});
我觉得这似乎只查找具有 req.params.username 的任何用户名或具有 req.session.user.id 的任何 id,而不是查找具有此用户名的用户并查看 req.session.user.id在该用户的好友数组中。
有更好的方法吗?
在 MySQL 中,它类似于 select from 'users' where username = 'something',然后检查该结果以查看该结果的好友数据中是否存在 id。
【问题讨论】: