Can we retrieve data from Mongodb using Mongoose if data has not been entered using Mogoose. Because data is manually entered in the Mongodb database. Currently I am trying to retrieve data using MongooseModel.findOne() method but its not finding the required data.
My Mongoose Model is this:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongooseUniqueValidator = require('mongoose-unique-validator');
var schema = new Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true}
});
schema.plugin(mongooseUniqueValidator);
module.exports = mongoose.model('User', schema);
Database name: test-mean
Collection name: user
This is my post route that in which I am using Mongoose to retrieve data.
router.post('/signin', function(req, res, next) {
User.findOne({email: req.body.email}, function(err, user) {
if (err) {
return res.status(500).json({
title: 'An error occurred',
error: err
});
}
if (!user) {
return res.status(401).json({
title: 'User Login failed',
error: {message: 'Invalid login credentials'}
});
}
if (req.body.password != user.password) {
console.log('user password ' + user.password);
console.log('request body password ' + req.body.password);
return res.status(401).json({
title: 'Password Login failed',
error: {message: 'Invalid login credentials'}
});
}
var token = jwt.sign({user: user}, 'secret', {expiresIn: 7200});
res.status(200).json({
message: 'Successfully logged in',
token: token,
userId: user._id
});
});
});
Please help. Thanks