Node.js 获取具有特定属性的所有用户

Node.js 获取具有特定属性的所有用户,node.js,mongodb,rest,mongoose,Node.js,Mongodb,Rest,Mongoose,大家好,我是node和mongo的新手,希望你们能帮助我。 我使用mongoose定义了一个用户模式: var userSchema = mongoose.Schema({ local : { email : String, password : String, name : String }, facebook : { id : String, email

大家好,我是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
}});
我试图通过特定的电子邮件获取所有用户(来自本地谷歌和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);
    })
});
我怎么修理它? 谢谢。

添加

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);
    });
});

但您将仅从本地用户处获得?但是如果邮件在facebook/google中呢?你没有在你的模式中指定你可能想做的事情我把它添加到我的帖子中了