【问题标题】:fetch all the users with specific attribute获取所有具有特定属性的用户
【发布时间】:2016-03-04 10:06:00
【问题描述】:

大家好,我是 node 和 mongo 的新手,希望得到您的帮助。 我用猫鼬定义了一个用户模式:

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

我该如何解决? 谢谢。

【问题讨论】:

    标签: node.js mongodb rest mongoose


    【解决方案1】:

    添加

    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 中呢?
    • 您没有在架构中指定您可能想要做的事情
    • 我已将其添加到我的帖子中
    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2019-11-06
    • 2020-06-19
    • 2013-06-19
    相关资源
    最近更新 更多