如何使用mongoose填充连接结果,匹配(2个集合)

时间:2016-09-07 18:28:01

标签: node.js mongoose mongoose-schema mongoose-populate

用户架构

var UsersSchema = new Schema({
username:String,
city:String
},{collection:'User'});
 //sample data {'username':'7700010000',city:'mumbai'}

大学图式

var College = new Schema({
    college:String,
    user_sess:[type:String,ref:"User"]},{collection:'College'});
    //sample data {'college':'adarsh college','user_sess':'Sess$7700010000'}

我正在尝试从user_sess获取大学收藏的结果。但问题是user_sess的值为前缀值' Sess $'

所以 user_sess =前缀+ 用户名 来自收藏用户

   var prefix = 'Sess$';
   College
    .find({ "user_sess": prefix + req.body.user_id})
    .populate({'user_sess'})
    .exec(function (err, users) {
        console.log();
    if (err)
    res.send(err);
    res.json(users);
    });

如果user_sess匹配,则结果应为

    {'college':'adarsh college','username':'7700010000','city':'mumbai'}

1 个答案:

答案 0 :(得分:0)

我已经通过在我各自的集合中添加引用键来解决它,因为我尝试了正则表达式,但它在我的响应中添加了额外的延迟。我们正在使用解析服务器框架但我们想要摆脱它,但由于解析以不同的方式保存数据,我无法使用mongoose模式进行连接。

谢谢。