我一直在寻找这个,但无法理解。我在 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()
,除了使用的数据库连接之外,完全没有提及要从数据库中获取的内容。
我想知道这是如何工作的?
谢谢!
最佳答案
当您使用以下方式定义 Book
模型时:
var Book = module.exports = mongoose.model('Books', genreSchema)
Mongoose 采用小写且复数的模型名称 'Books'
来获取 books
的集合名称。
您可以通过 model
的可选第三个参数显式定义要使用的集合名称:
var Book = module.exports = mongoose.model('Books', genreSchema, 'books')
关于node.js - mongoose.model.find(callback) - 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42101951/