如何使用Mongoose 7.3.1打印MongoDB数据库中的文档
解决Mongoose打印Query对象而非数据库文档的问题
你看到的Query对象是Mongoose查询的未执行实例——Fruit.find({})本身不会直接执行查询,而是返回一个可链式调用的Query对象,必须触发执行才能获取数据库中的实际文档。以下是几种可行的解决方案:
方法1:使用回调函数
在find方法中传入回调函数,查询完成后会将结果传入回调参数:
Fruit.find({}, (err, fruits) => { if (err) { console.error('查询出错:', err); } else { console.log('数据库中的水果文档:', fruits); // 按需关闭数据库连接 mongoose.connection.close(); } });
方法2:使用async/await(推荐)
将查询放在异步函数中,用await等待查询执行完成:
async function fetchFruits() { try { const fruits = await Fruit.find({}); console.log('数据库中的水果文档:', fruits); mongoose.connection.close(); } catch (err) { console.error('查询出错:', err); } } fetchFruits();
方法3:使用exec()方法
通过exec()方法执行Query对象,返回Promise后用then/catch处理结果:
Fruit.find({}) .exec() .then(fruits => { console.log('数据库中的水果文档:', fruits); mongoose.connection.close(); }) .catch(err => console.error('查询出错:', err));
内容的提问来源于stack exchange,提问作者Hemant
相关产品推荐
相关产品推荐

