Javascript 通过Mongoose获取集合失败(对象{}没有方法“find”)

Javascript 通过Mongoose获取集合失败(对象{}没有方法“find”),javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我想通过Mongoose find方法获取一些集合。我的模型是这样的: var mongoose = require('mongoose'); var schema = new mongoose.Schema({ timeline_content: String, timeline_e_id: String }); var timeline = mongoose.model('timeline', schema); module.exports = timeline; 使

我想通过Mongoose find方法获取一些集合。我的模型是这样的:

var mongoose = require('mongoose');

var schema = new mongoose.Schema({
    timeline_content: String,
    timeline_e_id: String

});

var timeline = mongoose.model('timeline', schema);
module.exports = timeline;
使用此代码,我想获取一些集合:

    var Timeline = require('./models/timeline'); 
    var timeline = new Timeline();
    timeline.find({timeline_e_id:'an id'}).sort("_id").limit(5).exec(
        function(err, projects) {
            if (err) {
                throw err;
            }

            //do something
        }
    );
但我得到了这个错误:

TypeError: Object {} has no method 'find'
为什么??我必须在模型中定义find方法?实际上,我找不到任何资源来进行查询。这是一个最简单的方法,但它失败了。

.find是时间线模型上的一个方法,而不是时间线实例上的一个方法

从变量赋值中删除新的和

编辑

正如Blakes Seven所建议的,您的代码应该如下所示:

var Timeline = require('./models/timeline');        
TimeLine.find({timeline_e_id:'an id'}).sort("_id").limit(5).exec(
  function(err, projects) {
    if (err) {
      throw err;
    }

     //do something
});

您应该在模块上使用require进行定义,或者最好调用var timeline=mongoose.model'timeline',它将从mongoose对象调用模型。您是如何使用大写字母T对象定义timeline的?我猜这是因为需要问题中的第一个js文件,对吗?@BlakesSeven:我已经使用了require并加载了该模型。保存方法有效,但仅查找无效。var Timeline=需要“./models/Timeline”@我使用require并加载了该模型。保存方法有效,但仅查找无效。var Timeline=需要“./models/Timeline”@Fcoder要点是,只有在创建新对象时才调用新时间线。是的,你唯一能做的就是保存在那里。否则,您将调用TimeLine.find,而不是实例。您能否给出更明确的答案?我不明白我必须做什么,为什么