【问题标题】:How to perform findOne query in mongoose如何在猫鼬中执行 findOne 查询
【发布时间】:2012-09-30 20:21:08
【问题描述】:

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

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

谢谢。

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您回答我的问题,
  • 在调用 findone 时必须始终回调?
猜你喜欢
  • 2015-04-05
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2011-10-25
  • 2016-04-14
  • 2018-10-14
  • 2020-09-14
相关资源
最近更新 更多