【问题标题】:Getting TypeError: Object has no method 'find'获取 TypeError:对象没有“查找”方法
【发布时间】:2016-07-10 19:54:01
【问题描述】:

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

我不知道如何在对象中获取 else,每次使用 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();
                        }
                    })  
                }       
            })
})

【问题讨论】:

    标签: javascript node.js mongodb mongoose openshift


    【解决方案1】:

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

    上面引用文件中的意思是数据库记录。

    当您执行.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();
                            }
                        })  
                    }       
                })
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多