[英]How to find and populate reference object fields in a mongoose schema
我正在嘗試從 mongoose 模式下獲取數據,但我不確定如何獲取角色字段,這是一種 RoleObject。
import * as mongoose from 'mongoose'; const Schema = mongoose.Schema; const RoleObject = { current_role: { type: Schema.Types.ObjectId, ref: 'Role', autopopulate: true }, new_role: { type: Schema.Types.ObjectId, ref: 'Role', autopopulate: true } } const UserRequestSchema = new mongoose.Schema({ group: { type: Schema.Types.ObjectId, ref: 'Group', autopopulate: true, required: true }, user: { type: Schema.Types.ObjectId, ref: 'User', autopopulate: true, required: true }, role: { type: RoleObject }, status: { type: String, required: true, enum: ['pending', 'approved', 'denied'] }, type: { type: String, required: true, enum: ['group-join', 'role-change'] }, active: { type: Boolean, required: true } }); UserRequestSchema.index( { group: 1, user: 1 }, { unique: true } ); export { UserRequestSchema };
在這里,我想填充 UserRequestSchema 中的角色字段,它作為 RoleObject 給出。
是否可以通過使用 find 方法填充字段,或者我是否需要使用聚合?
嘗試這個
UserRequest.find({active:true}).populate({ path: 'role.current_role role.new_role', model: 'Role', select: 'name' }).exec((error, result) => { if (error) { console.log(error, " ERROR") } console.log(result, "Result") });
如果您遇到任何問題。 請告訴我
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.