Estoy tratando de extraer datos (particularmente, la matriz de membresías) de un determinado usuario.
_id:623db49b9da63a7758307d68 email:"test@test.com" username:"test" salt:"eb83e08efef62630c46b1809c7671db2109ceccff9d66862c93df1e3825c1354" hash:"e419edb1bc481d5c87dd223a7f1dc20bece679fad1a3c1afe05dfabba341c0a9913a60..." __v:0 memberships:Array 0:623dc03f72436863b72c396e 1:623dc869b61c3799494b2657Sin embargo, cuando solicito el documento, no recupera la porción de membresías.
{ _id: new ObjectId("623db49b9da63a7758307d68"), email: 'test@test.com', username: 'test', __v: 0 }El siguiente código es responsable de extraer la información de la base de datos y luego también registra lo que se extrajo.
module.exports.showContent = async(req, res, next) => { try { const user = await User.findById(req.user.id); console.log(user) res.render('index', { user }) } catch (e) { console.log(e) res.render('index') } }Curiosamente, si solo hay una referencia en la matriz, ¡aparecerá en el archivo console.log!
{ _id: new ObjectId("623db49b9da63a7758307d68"), email: 'test@test.com', username: 'test', __v: 0, memberships: new ObjectId("623dc869b61c3799494b2657") }Modelo de esquema en cuestión:
const UserSchema = new Schema({ email: { type: String, required: true, unique: true, }, username: { type: String, required: true, unique: true, }, roles: String, memberships: { type: Schema.Types.ObjectId, ref: 'Community', }, posts: { type: Schema.Types.ObjectId, ref: 'Posts', }, comments: { type: Schema.Types.ObjectId, ref: 'Comments', } }) UserSchema.plugin(passportLocalMongoose); module.exports = mongoose.model('User', UserSchema);Mis otras colecciones no parecen tener el mismo problema cuando se trata de referencias dentro de una matriz.
He intentado usar .populate() para completar los datos. Intenté usar ruta: y llenar: dentro del método. Intenté buscar en Google el problema, pero no tuve suerte.