У меня есть любимая. js модель, в которой блюда представляют собой массив ObjectId. Мне удалось заполнить пользователя (также содержит ObjectId) его данными, но я не могу сделать то же самое для блюд, так как в массиве нет объектов.
const favoriteSchema = new Schema({
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
dishes: [mongoose.Schema.Types.ObjectId]
},{
timestamps: true
})
var Favorite = mongoose.model('Favorite',favoriteSchema)
module.exports = Favorite
Я попытался заполнить блюда массив, но он возвратил ошибку с неверным путем.
favoriteRouter.route('/')
.get(authenticate.verifyUser,(req,res,next)=>{
Favorites.findOne({"user":req.user._id})
.populate('dishes')
.populate('user')
.then((favorite)=>{
res.setHeader('Content-Type','application/json')
res.setStatus = 200
res.json(favorite)
})
.catch((err)=>{
next(err);
})
}
Я хочу, чтобы вывод был следующим:
До заполнения:
{
"dishes": [
"5e2c30b910e3ff15d85ffd7e",
"dnj4k60d1822785e2d5c603"
],
"_id": "5e2d5c6032f0a60d182d971c",
"user": "5e2d5c603dnj4k60d182278v",
"createdAt": "2020-01-26T09:31:12.267Z",
"updatedAt": "2020-01-26T09:31:13.021Z",
"__v": 1
}
После заполнения:
{
"dishes": [
{
//populated content as object
},
{
//populated content as object
}
],
"_id": "5e2d5c6032f0a60d182d971c",
"user": {
"firstname": "",
"lastname": "",
"admin": true,
"_id": "5e289e47d48a6016ec233078",
"username": "admin",
"__v": 0
},
"createdAt": "2020-01-26T09:31:12.267Z",
"updatedAt": "2020-01-26T09:31:13.021Z",
"__v": 1
}