我一直在搜索这个,但无法理解。我在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获取的内容,除了使用的数据库连接。
我想知道这是如何运作的?
谢谢!
答案 0 :(得分:0)
使用以下内容定义Book
模型时:
var Book = module.exports = mongoose.model('Books', genreSchema)
Mongoose采用较低的和多元化的模型名称'Books'
来获取集合名称books
。
您可以通过可选的第三个参数model
显式定义要使用的集合名称:
var Book = module.exports = mongoose.model('Books', genreSchema, 'books')