如何在mongoose中执行findOne查询

时间:2012-10-10 11:17:28

标签: node.js mongodb mongoose

我有名为administrator的mongoose架构

var administratorSchema = new mongoose.Schema({

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

当我尝试这个查询时,我可以得到结果

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'

问题是:当我尝试将条件从_id更改为“username”时,mongoose不起作用,findOne不执行:

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 : ''

感谢。

1 个答案:

答案 0 :(得分:6)

您的查询对象无效(使用冒号而不是逗号),并且您在findOne参数之间缺少逗号。你的电话应该是这样的:

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

您还应该检查回调的err参数,看看是否有效。

不确定为什么它会使用您的_id条件版本达到回调,因为该版本具有相同的问题。