You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mongoose读取MongoDB水果集合名称时显示Undefined问题

问题解决:读取MongoDB水果名称输出Undefined

你的问题出在Fruit.find()的回调逻辑里:

fruits.forEach(function (fruit) {
  console.log(fruits.name); // 错误访问了数组fruits的name属性
})

fruits是查询返回的水果对象数组,数组本身没有name属性,而forEach的参数fruit才是数组里的单个水果文档,应该访问fruit.name。

修正后的代码片段:

Fruit.find()
  .then(function (fruits) {
    fruits.forEach(function (fruit) {
      console.log(fruit.name); // 改为fruit.name
    })
  })
  .catch(function (err) {
    console.log(err);
  });

额外补充两个注意点:

  • 你的main函数是异步的,但Fruit.find()没有等待数据库连接完成就执行,可能偶尔出现连接未就绪的问题。建议把查询逻辑移到main函数内,确保连接成功后再执行查询:
async function main() {
  await mongoose.connect('mongodb://127.0.0.1:27017/Fruitsdb');
  console.log('Database connected');
  
  // 查询逻辑移至此处
  Fruit.find()
    .then(function (fruits) {
      fruits.forEach(function (fruit) {
        console.log(fruit.name);
      })
    })
    .catch(function (err) {
      console.log(err);
    });
}
  • 你创建的kiwi、orange的rating值超出了schema定义的max限制(max:5),如果后续启用insertMany会触发验证错误,需要将rating值调整到1-5区间内。

内容的提问来源于stack exchange,提问作者Varad Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:13:34