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

标签 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(),除了使用的数据库连接之外,完全没有提及要从数据库中获取的内容。

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

谢谢!

最佳答案

当您使用以下方式定义 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/

相关文章:

javascript - 如何将数据从 Node.js(webpack) 发送到纯 Node.js(express)?

c# - 来自 C# 的 MongoDB db.runCommand()

php - 无法在 Laravel 5 中将 Carbon 日期设置为 null

php - ORM 中的对象是否应该包含 CRUD 以外的操作?

javascript - req.flash 不是 Nodejs 的函数

java - 如何禁用 mongoDB java 驱动程序日志记录?

node.js - 使用环境变量中的 token 从私有(private) Github 存储库安装 NPM 包

python - 如何为 Cassandra 创建只读模型

javascript - AJAX post to Express 没有返回任何数据到 req.query(是的,有相同的 q 但没有任何作用)

javascript - 使用 Node.JS,如何按时间顺序获取文件列表?