我question在数据库中收集了300个对象test。我可以通过MongoDB的交互式外壳轻松地与该集合进行交互;但是,当我尝试在express.js应用程序中通过Mongoose获取集合时,我得到了一个空数组。
question
test
我的问题是,如何才能访问此现有数据集而不是快速创建它?这是一些代码:
var mongoose = require('mongoose'); var Schema = mongoose.Schema; mongoose.connect('mongodb://localhost/test'); mongoose.model('question', new Schema({ url: String, text: String, id: Number })); var questions = mongoose.model('question'); questions.find({}, function(err, data) { console.log(err, data, data.length); });
输出:
null [] 0
猫鼬增加了在模式下指定集合名称的功能,或在声明模型时作为第三个参数的功能。否则,它将使用您映射到模型的名称给出的复数形式。
尝试如下所示,或者映射模式:
new Schema({ url: String, text: String, id: Number}, { collection : 'question' }); // collection name
或模型映射:
mongoose.model('Question', new Schema({ url: String, text: String, id: Number}), 'question'); // collection name