Saturday 29 December 2018

Problems with mongoose’s populate()

Calc schema:const { Schema, model } = require('mongoose');const calcSchema = Schema({_id: Schema.Types.ObjectId,preset: { type: String, required: true },datasets: [{ type: Schema.Types.ObjectId, ref: 'Dataset' }],model: String,});module.exports = model('Calc', calcSchema, 'calc'); ​Game schema:const { Schema, model } = require('mongoose');const gameSchema = Schema({_id: Schema.Types.ObjectId,name: { type: String, required: true },description: String,calc: [{ type: Schema.Types.ObjectId, ref: 'Calc' }]});module.exports = model('Game', gameSchema);GET games API routerouter.get('/', passport.authenticate('jwt', { session: false }), (req, res) => {Game.find().select('_id name calc').populate('calc').then(game => res.status(200).json(game)).catch(err => res.status(500).json({ error: err }));});Without populate calc property is an array full of calc IDs, however, as soon as I populate('calc'), calc property turns into an empty array. (["5c26b1a2a64a303358411a66", ... ] -> [])

Submitted December 29, 2018 at 08:58AM by Just42s

No comments:

Post a Comment