mongoose.model.find(callback) - 它是如何工作的?

时间:2017-02-07 23:29:56

标签: node.js mongodb model callback find

我一直在搜索这个,但无法理解。我在node.js上有一个应用程序来使用mongoose访问MongoDB数据。

//contents of book.js
var Book = module.exports = mongoose.model('Books',genreSchema)
Book.getBooks = function(call,limit){
               Book.find(call).limit(limit);
               console.log(call.toString());
               }


//contents of app.js
mongoose.connect('mongodb://localhost/bookstore');
var db = mongoose.connection;    
Books = require('./models/book');
app.get('/api/book', function(req,res){
        Books.getBooks(function(err, book){ 
                  if(err){ throw err;}
                          res.json(book);
                    });
        });

call.toString()返回app.js中的回调函数定义。内部Book.find(call)查询如何匹配集合名称(虽然我没有明确指定集合名称)以错误地获取记录?

我将定义传递给find(),绝对没有引用从DB获取的内容,除了使用的数据库连接。

我想知道这是如何运作的?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用以下内容定义Book模型时:

var Book = module.exports = mongoose.model('Books', genreSchema)

Mongoose采用较低的和多元化的模型名称'Books'来获取集合名称books

您可以通过可选的第三个参数model显式定义要使用的集合名称:

var Book = module.exports = mongoose.model('Books', genreSchema, 'books')