javascript - Mongoose: ObjectId Array not populating -
import * mongoose 'mongoose'; mongoose.connect('mongodb://localhost:27017/testthis'); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', async () => { const userroles = new mongoose.schema({ rolename: string, user: {type: mongoose.schema.types.objectid, ref: 'user'} }); const userrolemodel = mongoose.model('userrole', userroles, 'userrole'); const userschema = new mongoose.schema({ name: string, roles: [{type: mongoose.schema.types.objectid, ref: 'userrole'}] }); const usermodel = mongoose.model('user', userschema, 'user'); await usermodel.remove({}); await userrolemodel.remove({}); const user = new usermodel({ name: 'user1' }); const saveduser = await user.save(); const role = new userrolemodel({ rolename: 'test', user: saveduser._id }); await role.save(); const users = await usermodel.find().populate('roles').exec(); // not populate roles console.log('users', users); const roles = await userrolemodel.find().populate('user').exec(); // populates user console.log('roles', roles); process.exit(); }); i'm able populate user when retrieve roles. i'm not able retrieve roles belong user.
the code should able run long have mongo running , transpile es5.
is able see i'm doing wrong?
(im working along cody) issue not storing id's of roles in user model. had mistakenly assumed populate method use user models _id fetch userrole. isn't case. adding userrole ids roles array, populating worked.
Comments
Post a Comment