如何在mongoose中执行findOne查询

4
我有一个名为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 : ''

谢谢。

可能是如何使用mongoose findOne的重复问题。 - Thomas
1个回答

11

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

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

你还应该检查回调的err参数,以确保一切正常。

不确定为什么使用_id条件版本时也会触发回调,因为它也存在相同的问题。


感谢您回复我的问题, - Mohamed Challouf
调用 findone 时,是否总是需要回调函数? - Gobliins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接