在Mongoose中,如果没有找到匹配的记录,那么Model.find()传递给回调的是什么?

时间:2013-07-28 21:45:15

标签: node.js mongodb mongoose

在我的回调中,我试图测试我对Model.find()的调用是否发现了任何结果。传递给record的回调的Model.findOne()null,但Model.find()通常“找不到”所有匹配记录的情况似乎并非如此。那么,Model.find()到底究竟是什么?

以下是我尝试确定将哪些内容作为记录传递给回调的各种测试:

author.model.find({userName: 'nameNotInDB'}, function(err, record)
{
    if(err){console.log(err)
    }else{
        console.log(record); //~> []
        console.log(record == []); //~> false
        console.log(record == null); //~> false
        console.log(record == undefined); //~> false
        console.log(record == ''); //~> true
        console.log(record === ''); //~> false
        console.log(record == false); //~> true
        console.log(record === false); //~> false
    }

});

1 个答案:

答案 0 :(得分:2)

console.log(typeof record === typeof []) // True

您的测试(record == [])失败,因为比较复杂类型(对象和数组)只有在它们引用相同对象时才会成立。

更新,更好的测试:

console.log(Array.isArray(record)) // True