mongoose populate 似乎不起作用。困惑我已经两天了
问题描述 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 谢谢,果然是我用错了