CNode

mongoose populate 似乎不起作用。困惑我已经两天了

问答
BBengBu-YueZhang发布于8 年前最后回复8 年前3 回复2705 浏览0 收藏

问题描述 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)

W
wiscgazf#1·8 年前

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

W
wiscgazf#2·8 年前

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

参与回复
登录后即可参与回复。登录