How to perform findOne query in mongoose


Question

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.

1
0
10/10/2012 11:17:28 AM

Accepted Answer

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.

6
10/10/2012 12:33:23 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon