0

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

Waleed Shahzaib
  • 1,526
  • 2
  • 18
  • 34

0 Answers0