【发布时间】:2012-01-14 17:15:54
【问题描述】:
我有一个要求,我需要获得用户的朋友。我制作了两个名为 User 和 Friends 的集合。 我用来访问朋友和用户数据的代码是:
var friend = Friends.find({acceptor:req.currentUser.id,status:'0'},function(err, friends) {
console.log('----------------friends-----------------'+friends.length);
});
console.log 正在给我朋友想要的结果。现在,如果我使用朋友访问用户数据,就像给定的那样,我没有得到我需要的结果。
var user = User.find({_id:friend.requestor},function(err, users) {
console.log('----------------user-----------------'+users.length);
});
如何加入这两个查询以获得所需的结果。请帮助
【问题讨论】:
-
我认为这更多是您的数据库设计问题,而不是如何查询这个问题...将朋友作为 ID 数组添加到用户模式。然后查询用户(并获取数组),然后获取所有朋友用户(stackoverflow.com/questions/5818303/…)。
-
pkyeck 是对的,您应该向用户添加好友数组,因为这样您只需要执行一个查询 => 优化
-
是的,它是这样工作的。如果我使用循环,渲染文件时会出现问题。使用数组消除了这一点。谢谢
标签: mongodb node.js express mongoose