Javascript 为什么';查找';在MongoDB中返回查询对象的查询?

Javascript 为什么';查找';在MongoDB中返回查询对象的查询?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我已经在这里看到了很多答案,但是没有一个解决了我的问题 我目前正在使用node、express和mongodb创建一个项目。我从一个种子文件开始,将一些数据放入mongodb: var products = [ new ProductModel(data), new ProductModel(data), new ProductModel(data), new ProductModel(data), ]; // Connecting to mongodb usi

我已经在这里看到了很多答案,但是没有一个解决了我的问题

我目前正在使用node、express和mongodb创建一个项目。我从一个种子文件开始,将一些数据放入mongodb:

var products = [
    new ProductModel(data),
    new ProductModel(data),
    new ProductModel(data),
    new ProductModel(data),
];

// Connecting to mongodb using mongoose.
mongoose.connect(config.mongodb.dsn, { useNewUrlParser: true })
    .then(() => {
        console.log("Successfully connected to MongoDB through Mongoose.");
    })
    .catch((error) => {
        console.log("Error when connecting to MongoDB through Mongoose: " + error);
    });

// Saving product instances to the product document in mongodb
var done = 0;
for (var i = 0; i < products.length; i++) {
    products[i].save((error, result) => {
        done++;
        if (done == products.length) {
            // Disconnecting...
            console.log("All products have been loaded into mongodb. Disconnecting now...");
            mongoose.disconnect();
        }
    });
}
但是,我正在console.logging我的终端上的结果,出现的唯一结果是一个查询对象,如下所示:

Query {
  _mongooseOptions: {},
  _transforms: [],
  _hooks: Kareem { _pres: Map {}, _posts: Map {} },
  _executionCount: 0,
  mongooseCollection:
   NativeCollection { 
(...)
_traceFunction: undefined,
  '$useProjection': true }

我需要在数据库中检索产品。我做错了什么?

一切都按其应有的方式执行
find()
根据文档返回一个
Query
对象:

如果您想让它返回值,只需将其设置为wait并调用
exec
即可获得承诺:

router.get('/', async function(req, res, next) {
    const products = await ProductModel.find().exec();
    console.log(products);
    res.render('shop/index', { products });
});

因为
find()
是一个
async
操作。可以使用回调获取结果,也可以使用
.exec()
将其转换为获得完全的承诺@谢谢你,我不是100%肯定。
router.get('/', async function(req, res, next) {
    const products = await ProductModel.find().exec();
    console.log(products);
    res.render('shop/index', { products });
});