一尘不染

如何使用Mongoose访问现有集合?

node.js

question在数据库中收集了300个对象test。我可以通过MongoDB的交互式外壳轻松地与该集合进行交互;但是,当我尝试在express.js应用程序中通过Mongoose获取集合时,我得到了一个空数组。

我的问题是,如何才能访问此现有数据集而不是快速创建它?这是一些代码:

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

阅读 336

收藏
2020-07-07

共1个答案

一尘不染

猫鼬增加了在模式下指定集合名称的功能,或在声明模型时作为第三个参数的功能。否则,它将使用您映射到模型的名称给出的复数形式。

尝试如下所示,或者映射模式:

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
2020-07-07