簡體   English   中英

如何在 mongoose 架構中查找和填充引用 object 字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM