mongoose populate 似乎不起作用。困惑我已经两天了
发布于 6 年前 作者 BengBu-YueZhang 2164 次浏览 来自 问答

问题描述 mongoose populate 似乎不起作用, 另人疑惑的是, 我在项目另一个地方使用,它是正常的

问题出现的环境背景及自己尝试过哪些方法 mongodb: 4.0.1 mongoose: 5.2.9

相关代码

// dinner.model.js
const mongoose = require('mongoose')
const Schema = mongoose.Schema

const DinnerSchema = new Schema({
  name: {
    type: String
  },
  content: {
    type: [{
      type: Schema.Types.ObjectId,
      ref: 'Food'
    }]
  }
})

const Dinner = mongoose.model('Dinner', DinnerSchema, 'dinners')

module.exports = Dinner

// food.model.js

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const FoodSchema = new Schema({
  name: {
    type: String
  }
})

const Food = mongoose.model('Food', FoodSchema, 'foods')

module.exports = Food

router.get('/test', async (ctx, next) => {
  const result = await DinnerModel.find().populate({
    path: "foods"
  })
  ctx.result = {
    code: 200,
    data: {
      list: result,
      msg: 'success'
    }
  }
  await next()
})

你期待的结果是什么?实际看到的错误信息又是什么? 是什么原因导致的?

3 回复

你populate中的select应该是你关联的那个字段 并不是你关联的那个数据库 自豪地采用 CNodeJS ionic

错了 populate中的path 应该是content model 才是foods 自豪地采用 CNodeJS ionic

@wiscgazf 谢谢,果然是我用错了

回到顶部