获取TypeError:对象没有方法'find'

时间:2016-07-10 19:54:02

标签: javascript node.js mongodb mongoose openshift

每当我使用TypeError: Object has no method 'find'检查返回的对象内部时,获取find()

我不知道如何在对象中获取其他内容,每次使用findOne(), forEach() etc. etc.

时都会出现同样的错误
getChannels.findOne(query, function(err, data){
                if(data){
                    data.banlist.find(function(list){
                        var currentTime = Date.now();
                        var banTime = list ? list.bantime : "";
                        if(currentTime >= banTime){
                            var index = data.banlist.indexOf(list);
                            data.banlist.splice(index, 1)
                            data.save();
                        }
                    })  
                }       
            })
})

1 个答案:

答案 0 :(得分:0)

  

可以通过几种静态帮助方法检索文档   的模型

上述引文中的

表示数据库记录。

当您.findOne(query, function(err, data)时,您会收到退回的文件或文件。在这种情况下,findOne是一个文档(一个记录)。你看,你得到的文件不是模特。要使用查询方法,您需要在模型上使用它。

我假设getChannels是一个模型,所以当你返回一份文件时。您可以在回调中从getChannels获得其他内容。

有点像这样的事情。不工作的代码。

getChannels.findOne(query, function(err, data){
                if(data){
                    //query anyother Model or collection
                    getChannels.find(function(list){
                        var currentTime = Date.now();
                        var banTime = list ? list.bantime : "";
                        if(currentTime >= banTime){
                            var index = data.banlist.indexOf(list);
                            data.banlist.splice(index, 1)
                            data.save();
                        }
                    })  
                }       
            })
})