嘿大家我是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);
})
});
我该如何解决? 感谢。
答案 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);
});
});