4

i have mongoose schema named administrator

var administratorSchema = new mongoose.Schema({

username : String,            
password : String,
    active : Boolean,
    level : String
});

When i try this query,i can get the result

mongoose.connect('mongodb://'+dbServer+'/'+dbName, function(connectionError) {
        var administratorModel = mongoose.model('administrators',administratorSchema);
        administratorModel.findOne({_id,111155dffxv}function(err, resad){
            console.log('into mongoose findone');
        });
});
====> Console output : 'into mongoose findone'

The problem is : when i try to change the criteria from _id to "username", mongoose dosen't work and findOne dosen't execute:

mongoose.connect('mongodb://'+dbServer+'/'+dbName, function(connectionError) {
        var administratorModel = mongoose.model('administrators',administratorSchema);
        administratorModel.findOne({'username','mohamed'}function(err, resad){
            console.log('into mongoose findone');
        });
});
====> Console output : ''

Thanks.

Mohamed Challouf
  • 105
  • 1
  • 1
  • 8
  • Possible duplicate of [How to use mongoose findOne](http://stackoverflow.com/questions/7033331/how-to-use-mongoose-findone) – Thomas Feb 24 '16 at 15:12

1 Answers1

11

Your query object isn't valid (use a colon instead of a comma) and you're missing a comma between the findOne parameters. Your call should look like this instead:

administratorModel.findOne({'username': 'mohamed'}, function(err, resad){
     console.log('into mongoose findone');
});

You should also be checking the err parameter of your callbacks to see if things are working.

Not sure why it was reaching the callback with your _id criteria version as that one has the same issues.

JohnnyHK
  • 305,182
  • 66
  • 621
  • 471