求大神给建立个符合要求mongodb集合
发布于 10 年前 作者 meluo 3483 次浏览 最后一次编辑是 8 年前 来自 问答

nodejs新手,想做个社交聊天的玩具(就是图个新鲜)现在遇见难题了,跪求大神帮助 我数据库用的是mongodb,建立了个用户表 var users=new Schema( { email:String,//邮箱 password:String,//密码 username:String,//用户昵称 avatar:String,//头像 sex:String,//性别 auth:String,//验证码 condition:Boolean,//账号是否激活 address:String,//地址 marry:String,//婚姻状况 proclammation:String,//个性宣言 friends:[{fid:Object,//朋友id remarks:String,//备注 group:String,//分组 allow:Boolean}] }); 我现在遇见的问题是如何通过fid获取朋友的信息, 我刚开始是这样做的 if(docs.friends.length>0){ docs.friends.forEach(function(b){ users.findById(b.fid,function(err,frids){ if(err){ console.log(“加载朋友时候失败了”); } var arr={ “userId”:frids._id, “username”:frids.username, “avatar”:frids.avatar, “remarks”: b.remarks, “group”: b.group } frs.push(arr);

                    });
					});
					 res.render('coze',{frs:frs});

但是我对回调函数,异步又不熟悉,设计上有问题,所以最后得不到frs 里的数据, 然后我尝试这用Population,发现friends 里关联的就是users ,而friends 就在users 中,怎么办 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 我的目的其实很简单,就是实现类似QQ那样加载好友信息,同时加载备注的功能,大神给个解决方案吧 参考资料也可以的

2 回复

消灭零回复,先格式化下你的代码,否则没人愿意看。

用计数器呗,每查到一个备注,就加一,加到总数等于好友数的时候,才执行。 不过你需要好好设计下你的数据库了,mongo是文档型的数据库,不是关系型的数据库

回到顶部