Javascript 通过Mongoose获取集合失败(对象{}没有方法“find”)
我想通过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; 使
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,而不是实例。您能否给出更明确的答案?我不明白我必须做什么,为什么