2

我有名为管理员的猫鼬模式

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 更改为“用户名”时,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 : ''

谢谢。

4

1 回答 1

10

您的查询对象无效(使用冒号而不是逗号)并且您在findOne参数之间缺少逗号。您的通话应如下所示:

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

您还应该检查err回调的参数以查看是否正常。

不知道为什么它会使用您的标准版本到达回调,_id因为那个版本有相同的问题。

于 2012-10-10T12:33:23.117 回答