获取具有特定属性

时间:2015-11-30 17:16:53

标签: node.js mongodb rest mongoose

嘿大家我是node的新手,mongo希望得到你的帮助。 我用mongoose定义了一个用户模式:

var userSchema = mongoose.Schema({


local            : {
    email        : String,
    password     : String,
    name         : String
},
facebook         : {
    id           : String,
    email        : String,
    token        : String,
    firstName    : String,
    familyName   : String
},
google           : {
    id           : String,
    email        : String,
    token        : String,
    firstName    : String,
    familyName   : String
}});

尝试使用特定电子邮件获取所有用户(来自本地Google和Facebook)。 我怎么写呢? 我试过像:

var User = require('./models/user');
app.get('/api/user/:email',function(req,res){
    User.findOne({'email':req.params.email},function(err,user){
       res.json(user);
    })
});

我该如何解决? 感谢。

1 个答案:

答案 0 :(得分:2)

添加

module.exports = mongoose.model("User", userSchema);

到您的架构文件。

然后尝试以下方法:

var User = require('./models/user');
app.get('/api/user/:email',function(req,res){
    User.findOne({"local.email": req.params.email}, function(err,user){
        res.json(user);
    });
});

或者全部三个:

var User = require('./models/user');
app.get('/api/user/:email',function(req,res){
    User.findOne({$or: [
        {"local.email": req.params.email},
        {"facebook.email": req.params.email},
        {"google.email": req.params.email}
    ]}, function(err,user){
        res.json(user);
    });
});